大家好我已经使用[授权],但是当重定向到登录视图时,我可以登录任何用户名或密码,那么问题是什么,还检查用户是否登录?
public ActionResult Login()
{
return View();
}
[HttpPost]
public ActionResult Login(Panel model, string Username, string Password)
{
if (ModelState.IsValid)
{
if (model.Username == Username && model.Password == Password)
{
FormsAuthentication.SetAuthCookie(model.Username, false);
return RedirectToAction("Index", "Test");
}
else
{
ModelState.AddModelError("", "Wrong username or password");
}
}
return View();
}
[Authorize]
public ActionResult Index()
{
return View();
}
答案 0 :(得分:2)
以下测试错误,它将始终返回true:
if (model.Username == Username && model.Password == Password)
Panel模型的Username
和Password
属性与请求绑定,并且与Username
和Password
参数具有相同的值。
您应该根据某些数据库或其他内容检查用户名和密码。例如,如果您使用的是会员提供者:
[HttpPost]
public ActionResult Login(Panel model)
{
if (ModelState.IsValid)
{
if (Membership.ValidateUser(model.Username, model.Password))
{
FormsAuthentication.SetAuthCookie(model.Username, false);
return RedirectToAction("Index", "Test");
}
else
{
ModelState.AddModelError("", "Wrong username or password");
}
}
return View();
}