1

我自定义UserProfile了 Table 并添加了名为IsActive. 它适用于注册。现在我想IsActive在登录之前获取该自定义列的值。

WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe)

需要这些场景

  1. 检查用户名和密码是否有效
  2. 如果登录有效,则检查用户是否处于活动状态。
  3. 如果用户未处于活动状态,则不应登录。

有任何想法吗?

4

1 回答 1

0

这只是我的想法并且未经测试,所以它可能不是100%正确,但它应该让你朝着正确的方向前进。

public ActionResult Login(LoginModel model)
{
    using(var db = new MyDbContext())
    {
        try
        {
            var user = db.UserProfile.FirstOrDefault(x => x.UserName == model.UserName);
            if(user != null)
            {   
                if(user.IsActive == true)
                {
                    if(ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe))
                    {
                        try
                        {
                            return View("SomeView");
                        }
                        catch(Exception e)
                        {
                            // handle exception
                        }
                    }
                }
                else
                {
                    return View("SomeView");
                }
            }
        }
        catch(Exception e)
        {
            // handle exception
        }
    }
    return View("SomeView");
}
于 2013-04-14T10:31:00.743 回答