2017-11-30 7 views
0

OWIN 쿠키 인증 미들웨어를 사용 중이며 인증해야하는 모든 요청에 ​​대해 호출해야하는 사용자 지정 OnValidateIdentity 메서드를 설정했습니다.OWIN의 OnValidateIdentity 쿠키 인증이 호출되지 않았습니다.

내 설정은 다음과 같습니다 : 내가 가지고있는

 app.UseCookieAuthentication(new CookieAuthenticationOptions 
     { 
      AuthenticationType = "my-cookie", 
      Provider = new CookieAuthenticationProvider() 
      { 
       OnValidateIdentity = async ctx => 
       { 
        // my own validation code 
       } 
      } 
     } 

문제는 일부 요청에 대해, OnValidateIdentity가 호출되지 않는 것입니다. 동일한 보호 웹 API 컨트롤러를 여러 번 방문하면 일부 요청이 OnValidateIdentity -method를 호출하지 않습니다.

이렇게하면 GetOwinContext().Authentication.User을 사용해야하고 나중에 ClaimsPrincipal이 채워지지 않을 때 처리 할 때 문제가 발생합니다.

왜 이런 이유가있을 수 있습니까?

답변

0

발견. 쿠키가 만료되었습니다.

나는 동일한 쿠키를 사용하여 OpenIdConnect -middleware를 사용하기 때문입니다. 설정에서 UseTokenLifetime = false을 지정하지 않으면 ID 토큰의 만기가 쿠키 만료로 사용됩니다.