我使用MVC3的默认LogOn模型。 LogOn局部视图位于布局视图中。
@Html.Partial( "~/Views/Home/LogOn.cshtml", new MyProject.Models.LogOnModel() )
登录后,网址为:
http://localhost:20234/?UserName=TestUsername&Password=121212&RememberMe=True
我不想要在URL中看到密码。 如何从URL中删除密码(也是Username,RememberMe)?
答案 0 :(得分:2)
使用GET方法将数据传输到服务器时,参数在url中可见。在这种情况下,您应该使用POST方法。例如:
<form action="/Account/Logon" method="POST">
<input type="text" name="Username"/>
<input type="text" name="Password"/>
<input type="submit"/>
</form>
答案 1 :(得分:1)
1)改变默认路线:
routes.MapRoute(
"DefaultSite",
"{controller}/{action}/{id}",
new
{
controller ="Account",
action ="LogOn",
id = UrlParameter.Optional
}
);
2)在主加载文件上加载部分:
@using (Html.BeginForm("LogOn","Account",HttpMethod.Post))
{
@Html.AntiForgeryToken()
@Html.Partial( "~/Views/Home/LogOn.cshtml", new MyProject.Models.LogOnModel())
}
3)并且帐户控制器添加了您的登录日志:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Login(LogOnModel model)
{
if (ModelState.IsValid)
{
//TODO:
return RedirectToAction("index", "home");
}
// If we got this far, something failed, redisplay form
ModelState.AddModelError("", @"The user name or password provided is incorrect.");
return View(model);
}