ASP.NET Логин / Членство - Как выйти? - PullRequest
3 голосов
/ 20 октября 2011

Я использую <asp:LoginStatus> элемент управления (наряду с <asp:Login>)

Я успешно вошел в систему как A .
Тогда я выхожу.
Если я тогда войду как B , текущий пользователь все еще будет A .
<asp:LoginName>, и HttpContext.Current.User.Identity.Name показывают A )

Я должен очистить куки, чтобы полностью выйти из системы.

Почему контроль входа в систему .NET не выводит меня должным образом? У кого-нибудь есть идеи?

РЕДАКТИРОВАТЬ : Я прошу прощения у всех! Это ошибка Umbraco . Я забыл, что использую UmbracoMembershipProvider

Ответы [ 2 ]

17 голосов
/ 20 октября 2011

При выходе из системы, чтобы полностью очистить зарегистрированного пользователя, я бы использовал:

Session.Clear()
Session.Abandon()
FormsAuthentication.SignOut()
FormsAuthentication.RedirectToLoginPage()
2 голосов
/ 24 октября 2011

Я просто приму ответ Иры, потому что мой вопрос был неправильным.

Это решение для ошибки Umbraco:

Добавить выписанный логин в LoginStatus

<asp:LoginStatus ... onloggedout="UmbracoLogout" />

, который вручную очищает кеш

  protected void UmbracoLogout(object sender, EventArgs e)
  {
    Member.RemoveMemberFromCache(Member.CurrentMemberId());
    Member.ClearMemberFromClient(Member.CurrentMemberId());
  }

(из http://our.umbraco.org/projects/website-utilities/nforum/bugs/18405-Cache-problem)

...