2014-09-23 4 views
2

내 ASP.NET 응용 프로그램은 FormsAuthentication에 의해 발급되고 관리되는 표준 인증 쿠키와 비 Windows/ASP.NET 시스템에서 단일 로그온을 가능하게하는 또 다른 쿠키를 관리합니다.ASP.NET에서 관리하지 않는 쿠키의 슬라이딩 만료를 어떻게 설정합니까?

ASP.NET 응용 프로그램은 Web.config를 통해 인증 된 쿠키 슬라이딩 유통 가능하도록 구성되어

<authentication mode="Forms"> 
    <!-- forms attributes removed for brevity --> 
    <forms name=".ASPXAUTH" slidingExpiration="true" /> 
</authentication> 

불행히도 슬라이딩 만료에만 인증 쿠키 아닌 SSO 쿠키를 변경한다. 인증 쿠키 만료 시간이 연장 될 때 알림을받을 수 있도록 가입 할 수있는 이벤트가 있습니까?

다른 방법으로, 앱에 대한 유효한 요청을 가로 채고 쿠키를 수동으로 확장하여이 동작을 에뮬레이트 할 수 있습니까? 그렇다면 컨트롤러에 대한 이러한 요청을 가로 채기 위해 어떤 방법을 구현해야합니까?

답변

6

auth cook 슬라이딩 만료는 요청이 있고 시간 초과 간격의 절반 이상이 경과하면 만료 시간을 재설정합니다. 그래서이 기능을 모방합니다.

사용자가 요청할 경우 시간 초과 간격의 절반 이상이 경과했는지 확인하십시오. 그럴 경우 SSO 쿠키의 만료 시간을 다시 설정하십시오.

you can't get the expiration value from a cookie이 (가) 까다로울 수 있습니다. SSO 쿠키에 HttpCookie의 Expires 속성이 아닌 만료 날짜의 키/값이 없으면 추가해야합니다. 만료시 변경하지 않고 쿠키를 변경할 수 없다면 SSO 쿠키가 만료 될 때 추적 할 세 번째 쿠키를 설정하면됩니다.

2

global.asax에 Application_AuthenticateRequest을 구현하여 응용 프로그램에 대한 각 HTTP 요청의 인증을 확인할 수 있습니다.