1

我在登录页面上有“记住我”选项。有人可以解释一下这个过程吗?即每次用户导航到页面时都在进行登录过程吗?或者用户是否经常登录并且应用程序仅在用户注销并再次登录时检查凭据?我问的原因是我IsEnabled在数据库中的用户表上有属性并且想禁用用户。但是除非用户注销并再次登录,否则此属性似乎没有任何区别。有任何想法吗?谢谢。

4

2 回答 2

3

当用户第一次使用有效凭据登录时,会创建一个 cookie 并将其存储在客户端。对于网站的每个后续请求,cookie 都会传递到服务器并进行验证,以确保它没有过期且有效。如果您希望能够检查是否应允许用户访问该站点,则需要在 Global.asax 文件IsEnabled中的事件中创建自己的身份验证逻辑。Application_AuthenticateRequest

protected void Application_AuthenticateRequest(Object sender, EventArgs e)
{
    // Your authentication logic
}

你可以在这里查看完整的活动列表:http: //www.dotnetcurry.com/ShowArticle.aspx?ID=126

于 2013-01-05T18:14:43.607 回答
0

我已使用此变体将此属性添加到您的控制器

public class IsLocked : AuthorizeAttribute
{
    protected override bool AuthorizeCore(HttpContextBase httpContext)
    {
        if (!httpContext.Request.IsAuthenticated)
            return false;

        var session = DependencyResolver.Current.GetService<ISession>();

        var userDb = session.Query<Admin>().SingleOrDefault(x => x.Email == httpContext.User.Identity.Name);

        if (userDb == null)
            return false;

        return userDb.Status == null || userDb.Status.Value == false;
    }
}
于 2013-03-11T10:17:36.720 回答