【发布时间】:2016-07-18 05:05:27
【问题描述】:
我有登录页面,如果密码或用户名无效,我想重定向到同一页面。 这是登录帖子中的代码:
[HttpPost]
public ActionResult Login(LoginModel lm, string returnUrl)
{
using (WorkLayer dal = new WorkLayer())
{
if (ModelState.IsValid)
{
// UserManager UM = new UserManager();
// string password = UM.GetUserPassword(ULV.LoginName);
string password = dal.Users.GetUserInfo(lm.UserName).HashPassword.ToString();
if (string.IsNullOrEmpty(password))
ModelState.AddModelError("", "The user login or password provided is incorrect.");
else
{
if (lm.HashPassword.Equals(password))
{
FormsAuthentication.SetAuthCookie(lm.UserName, false);
return RedirectToAction("AdminPanel");
}
else
{
ModelState.AddModelError("", "The password provided is incorrect.");
return RedirectToAction("Login");
}
}
}
}
return View(lm);
}
以及 Action Admin 中的代码:
[Authorize]
public ActionResult AdminPanel()
{
return View();
}
但每次我输入正确的用户名和密码时,我都会收到:
HTTP 错误 401.0 - 未经授权 您无权查看此目录或页面。 最可能的原因:
The authenticated user does not have access to a resource needed to process the request.
【问题讨论】:
-
添加
ModelStateError然后重定向有什么意义。您需要返回视图(return View(lm);) -
密码不等于散列密码(对吧?你不是存储普通密码吗……)
-
现在 - 是的。然后我要编写哈希密码的程序。
-
我现在没有角色,因为它是一个非常小的网站。
标签: c# asp.net .net asp.net-mvc asp.net-mvc-4