如何使密码字段不重置?

时间:2010-10-26 18:34:31

标签: asp.net asp.net-mvc asp.net-mvc-2

我想编辑一个用户。 我发出相应的数据(用户名,电子邮件,等等......密码,确认通过) 问题是那些密码字段是空的。

  1. 问:当我在表单中显示数据时 两个密码字段为空。 我怎样才能让它们包含数据? 感谢。
  2. 我使用的是asp.net-mvc 2

                        <div class="editor-label">
                            <%: Html.LabelFor(m => m.Password) %>
                        </div>
                        <div class="editor-field">
                            <%: Html.PasswordFor(m => m.Password)%>
                            <%: Html.ValidationMessageFor(m => m.Password)%>
                        </div>
    

4 个答案:

答案 0 :(得分:0)

无法真正理解这个问题,但我假设您正在谈论用户何时尝试编辑其帐户信息:

只需将其设置为如果他们已登录,并且密码字段中没有任何值,则密码不会更新。

将密码发送给客户端肯定存在安全风险。

答案 1 :(得分:0)

您没有查看问题。我认为你的问题来自模型。如果您正在编辑用户,请不要向他们发送密码。在您的模型类/存储库中,如果没有来自视图的新密码,只需更新必要的字段,否则更新所有内容。

我认为你试图在一篇文章中包含太多功能。如果要更改密码,则可以使用不同的控制器。

您的答案

如果您以纯文本格式将密码发回给用户。不妨把它放在一个普通的TextBox中。这样,它将持续存在于视图中。

使用普通的Html:

<input type="password" id="Password" value="<%: m.Password" />

答案 2 :(得分:0)

只需设置它,如果没有输入密码,密码就不会被更改。

您可能必须从视图所使用的模型中的[Required]Password属性中删除ConfirmPassword属性才能完成此操作。该模型通常是Models/AccountModels.cs

中的一个类

答案 3 :(得分:0)

如果将<input>的textmode设置为密码,则无法写入密码。密码文本框是只读的。

如果您看到预先填充的密码,那是因为浏览器记得它。