考虑用户有一个有效的身份验证 cookie,但他们的帐户已被删除(从不同的位置)
WebSecurity.IsAuthenticated
返回真。
WebSecurity.CurrentUserName
返回用户的用户名,尽管他们的帐户已被删除。据推测,此信息已在 auth cookie 中加密。
事实证明,IsAuthenticated
从当前 HttpContext 的请求中得到答案:
this._context.User.Identity.IsAuthenticated
因此,为了减轻:
var userName = WebSecurity.CurrentUserName;
using (var userDb = new UsersContext())
{
var usr = userDb.UserProfiles.SingleOrDefault(u => u.UserName == userName);
if(usr == null)
{
WebSecurity.Logout();
}
}
但是,即使在此之后:
WebSecurity.IsAuthenticated == true
WebSecurity.CurrentUserName == "myDeletedUser'sName"
这不是很有用。
如何清除此信息并让 WebSecurity 重新评估用户的身份验证状态?我真的必须将它们重定向回我的网站才能重置此状态吗?假设他们发布了?那是皮塔饼。