2

考虑用户有一个有效的身份验证 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 重新评估用户的身份验证状态?我真的必须将它们重定向回我的网站才能重置此状态吗?假设他们发布了?那是皮塔饼。

4

0 回答 0