我正在使用<asp:LoginStatus>
控件(以及<asp:Login>
)
我以 A 成功登录。
然后我退出。
如果我以 B 登录,则当前用户仍然 A
(<asp:LoginName>
和HttpContext.Current.User.Identity.Name
都显示 A )
我必须清除cookie才能完全注销。
为什么.NET登录控件没有正确登出?任何人都有任何想法?
编辑:我向大家道歉!这是一个 Umbraco错误。我忘了我在使用UmbracoMembershipProvider
答案 0 :(得分:17)
注销以完全清除我将使用的登录用户:
Session.Clear()
Session.Abandon()
FormsAuthentication.SignOut()
FormsAuthentication.RedirectToLoginPage()
答案 1 :(得分:2)
我接受艾拉的答案,因为我的问题是错的。
这是Umbraco错误的解决方案:
将一个onlogout添加到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)