C# ASP.NET MVC3用户登录

C# ASP.NET MVC3用户登录,c#,asp.net,asp.net-mvc,membership,C#,Asp.net,Asp.net Mvc,Membership,我有一个用户模型: [Required] public string Password { get; set; } [Required] public string UserName { get; set; } 我有一个MyMembershipProvider:MembershipProvider包含: public override bool ValidateUser(string username, string password) { if (username == Config

我有一个用户模型:

[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]属性的操作和控制器。当我使用断点时,它会返回RedirectToActionIndex,Home;但拒绝访问索引页


有人知道我哪里出了大问题吗?

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

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

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

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

我绝对不建议在实时站点的web.config中存储任何类型的凭据。这只是暂时的。稍后我将有一个正确的实现:我绝对不建议在live站点的web.config中存储任何类型的凭据。这只是暂时的。稍后我将有一个适当的实现:谢谢。成功了。我现在明白为什么需要SetAuthCookie了:谢谢。成功了。我现在明白了为什么需要SetAuthCookie: