注销被禁止的用户

rak*_*los 2 .net c# asp.net asp.net-mvc asp.net-membership

我禁止用户使用以下内容:

MembershipUser user = Membership.GetUser(username);
if (user != null)
{
    user.IsApproved = false;
    user.LastLoginDate = DateTime.Now;
    Membership.UpdateUser(user);
}
Run Code Online (Sandbox Code Playgroud)

如果用户当前已登录,他们仍然可以在网站上执行操作,那么我如何也将其注销?

Sha*_*lle 5

在你的 global.asax 你可以做这样的事情..

Application_OnAuthenticateReuqest(object sender, EventArgs e)
{
  if(!UserHasAccess())
  {
     FormsAuthentication.SignOut();
  }
}

private bool UserHasAccess()
{
   var user = Membership.GetUser(Context.User.Identity);

   return user.isApproved;
}
Run Code Online (Sandbox Code Playgroud)

您可能需要考虑某种形式的缓存...

顺便说一句,我假设您在控制器方法上使用了正确的 [Authorize] 属性。