gpt4 book ai didi

c# - ASP.NET MVC3 用户登录

转载 作者:行者123 更新时间:2023-11-30 21:03:38 25 4
gpt4 key购买 nike

我有一个用户模型:

[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] 属性的操作和 Controller 。当我使用断点时,它会落入 return RedirectToAction("Index", "Home"); 但拒绝访问索引页面。

谁能看出我错在哪里?

最佳答案

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

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

关于c# - ASP.NET MVC3 用户登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12729821/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com