我有更改密码控制器。 用户更改密码并单击“提交”。 我有我的人物视图模型。 我根本没有将它传递给我的成功页面。
return View("succsessFulLogin");
我仍在接受
http://localhost:50010/Password/ChangePassword?AccountName=username&CurrentPassword=currentPassValue&NewPassword=newPassValue&NewPasswordCheck=newCheckPassValue
在地址栏中
这是我在页面上的代码:
@using (Html.BeginForm("ChangePassword", "Password", FormMethod.Get))
{
@Html.HiddenFor(model => model.AccountName)
<br />
<div>
<h4>@Html.LabelFor(m => m.CurrentPassword)</h4> @Html.PasswordFor(m => m.CurrentPassword, new { onkeydown = "capLock(event);" } ) @Html.ValidationMessageFor(m => m.CurrentPassword)
</div>
<br />
<div>
<h4>@Html.LabelFor(m => m.NewPassword)</h4> @Html.PasswordFor(m => m.NewPassword, new { onkeydown = "capLock(event);" }) @Html.ValidationMessageFor(m => m.NewPassword)
</div>
<br />
<div>
<h4>@Html.LabelFor(m => m.NewPasswordCheck)</h4> @Html.PasswordFor(m => m.NewPasswordCheck, new { onkeydown = "capLock(event);" }) @Html.ValidationMessageFor(m => m.NewPasswordCheck)
</div>
<br />
<p>
<button class="btn-lg" type="submit">@Global.SAVE</button>
</p>
}
答案 0 :(得分:1)
我不同意奥斯曼拉希米。
使用HTTP POST 绝不比HTTP GET更安全更安全!只要您通过http将所有内容作为明文传递,您就可以读取传入和传出服务器的任何内容,即使它没有显示在地址栏中。如果您想亲自检查我,您只需下载fiddler,检查您的页面生成的请求和回复,并亲自查看。
在网络上传输密码的正确方法是确保您使用SSL并对密码进行哈希处理。我绝不是这方面的专家,但我认为你会在这些答案中找到需要:
答案 1 :(得分:0)
当您使用HTTP GET
时,浏览器会在URl
中发送数据,因此您的限制最多为2048 characters
。
know more about HTTPGET and HTTPPOST
保护您的数据安全并受到保护更改您的方法要POST这样:
@using (Html.BeginForm("ChangePassword", "Password" FormMethod.Post, null))
{}
然后将[HTTpPost]
添加到Action Method
中的controller
,例如:
[HttpPost]
public ActionResult ChangePassword(yourmodel model){}