2015-09-03 3 views
0

Я пытаюсь выйти из системы, когда токен JWT истек. Но по какой-то причине ClaimsPrincipal все еще существует после I Signout.ASP.NET Identity - AuthenticationManager.SignOut не работает

Например: Request.IsAuthenticated всегда верна даже после того, как я вышла.

Я выхожу из всех доступных типов аутентификации. (ApplicationCookie, ExternalCookie, Auth0).

Я не уверен, что мне здесь не хватает.

internal static void SignOut() 
    { 
     var authenticationManager = HttpContext.Current.Request.GetOwinContext().Authentication; 
     if (authenticationManager == null) return; 
     var appTypes = authenticationManager.GetAuthenticationTypes().Select(at => at.AuthenticationType).ToArray(); 
     authenticationManager.SignOut(appTypes); 

     var httpResponse = HttpContext.Current.Response; 
     var httpRequest = HttpContext.Current.Request; 
     httpResponse.Redirect(
      string.Format("https://{0}/logout?returnTo={1}", 
       ConfigurationManager.AppSettings["auth0Domain"], 
       httpRequest.Url)); 
    } 

Я ценю любые предложения/мысли, которые могут помочь мне в решении этой проблемы.

+0

Не знаете, какой идентификационный сервер вы используете, но вот руководство от Identityserver https://identityserver.github.io/Documentation/docs/overview /mvcGettingStarted.html. См. «Добавление журнала» –

+0

Показать код в 'Startup.Auth.cs'? – trailmax

+0

@trailmax Спасибо за ваше время. Я вызывал Signout() из ActionFilter, и метод действия продолжал выполняться даже после вызова Signout. Я решил проблему, выйдя из сеанса, а затем установил в фильтре filterContext.Result = новый RedirectResult ('logouturl)'. Таким образом, он прекратил выполнение метода Action и правильно вывел пользователя. – udayr

ответ

0

Спасибо за ваше время. Я вызывал Signout() из ActionFilter, и метод действия продолжал выполняться даже после вызова Signout. Я решил проблему, выписав сеанс, а затем установил

filterContext.Result = new RedirectResult('logouturl) 

в фильтре. Таким образом, он прекратил выполнение метода Action и правильно выписал пользователя.

Смежные вопросы