使用@ Html.PasswordFor发布表单时,密码可见

时间:2014-05-23 10:14:13

标签: asp.net-mvc-4

当我登录firefox时,我可以看到我的密码。

我正在使用以下代码

  @using (Html.BeginForm("Login", "Account", FormMethod.Post, new { @class = "navbar-form navbar-left", @id = "loginform" }))
        {
            @Html.AntiForgeryToken()
            @Html.ValidationSummary(true)
            <div class="form-group form-header input-group-lg">
                @Html.TextBoxFor(m => m.UserName, htmlAttributes: new { @class = "form-control", @placeholder = "Email:" })
                @Html.ValidationMessageFor(m => m.UserName)
            </div>
            <div class="form-group form-header input-group-lg">
                @Html.PasswordFor(m => m.Password, htmlAttributes: new { @class = "form-control", @placeholder = "Password:" })
                @Html.ValidationMessageFor(m => m.Password)
            </div>
            <button class="btn btn-danger btn-lg" type="submit">Login</button>
            <div class="remember">
                @Html.CheckBoxFor(m => m.RememberMe, htmlAttributes: new { @id = "login-remember" })
                @Html.LabelFor(m => m.RememberMe)
            </div>
        }

1 个答案:

答案 0 :(得分:3)

密码将始终以明文形式发送到帖子正文中。 @Html.PasswordFor仅遮挡屏幕上的输入框,以防止人们查看用户的肩膀并知道他们的密码。

这就是仅通过https页面提交安全信息的原因:这样,在从计算机传输到远程服务器的过程中,它将被加密。最好在初始页面GET期间确保页面位于https上,如果没有,则将用户重定向到页面的https URL。