繁体   English   中英

ASP.NET MVC3用户登录

[英]ASP.NET MVC3 User Login

我有一个用户模型:

[Required]
public string Password { get; set; }

[Required]
public string UserName { get; set; }

我有一个MyMembershipProvider : MembershipProvider包含:

public override bool ValidateUser(string username, string password)
{
   if (username == ConfigurationManager.AppSettings["DefaultUsername"] && password == ConfigurationManager.AppSettings["DefaultUserPassword"])
   {
       return true;
   }
   else
   {
       return false;
   }
}

我的登录动作如下所示:

[HttpPost]
    public ActionResult LogOn(User model, string returnUrl)
    {
        if (ModelState.IsValid)
        {
            if (Membership.ValidateUser(model.UserName, model.Password))
            {
                return RedirectToAction("Index", "Home");
            }
            else
            {
                ModelState.AddModelError("", "The user name or password provided is incorrect.");
            }
        }

        // If we got this far, something failed, redisplay form
        return View(model);
    }

问题:

当我指定正确的用户名和密码时,我似乎无法进入包含[Authorize]属性的操作和控制器。 当我使用断点时,它确实会return RedirectToAction("Index", "Home"); 但拒绝访问“索引”页面。

谁能看到我要去哪里大错了?

您需要设置身份验证cookie,以便下一个操作可以识别出该用户已通过身份验证。

....
if (Membership.ValidateUser(model.UserName, model.Password))
{
    FormsAuthentication.SetAuthCookie(model.UserName, true);
    return RedirectToAction("Index", "Home");
}
....

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM