2013-12-19 8 views
16

Как выйти из системы вошедшей в систему пользователя с помощью системы идентификации ASP.Net?Выход из системы ASP.Net

Я пробовал:

Authentication.SignOut(); 

Но если я использую это, а затем вызвать API помеченного [Authorize] (добавление маркеров в качестве заголовка) Он по-прежнему возвращает мне данные (вместо Несанкционированного).

+0

Вы добавили определенных пользователей или группы, которые могут использовать этот ресурс? – albusshin

ответ

33

Вам необходимо позвонить SignOut на номер AuthenticationManager, который вы можете получить от OWIN context.

var AuthenticationManager= HttpContext.GetOwinContext().Authentication; 
AuthenticationManager.SignOut(); 
+6

просто быстрое решение: оно должно включать 'Current':' HttpContext.Current.GetOwinContext(). Authentication' – renakre

+4

Если вы находитесь в ASP.NET MVC-контроллере, у вас есть свойство экземпляра 'HttpContext' из базового класса , поэтому вам не нужен «HttpContext.Current» в этом сценарии. –

+0

@MatthewWalton true, но если вы находитесь, скажем, ваш пользовательский HttpModule, то вам, безусловно, нужен «HttpContext.Current» ... – netchkin

0

В моем случае, потому что я имел Authorize атрибут в моем AccountController с администратором роли на уровне класса я должен был поставить [AllowAnonymous] атрибут моего метода выхода из системы. Может быть, и для вас.

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