注销禁止用户

时间:2011-03-15 20:43:18

标签: c# .net 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);
}

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

3 个答案:

答案 0 :(得分:4)

在你的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;
}

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

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

答案 1 :(得分:1)

您想要检查页面在每个请求上加载用户的状态。如果他们被禁止,您只需response.End()response.Redirect()他们到主页。

答案 2 :(得分:0)

您必须验证用户是否已在每个请求中被禁止。您可以使用HttpApplication(Global.asax)或最好使用自定义HttpModule来实现此目的。