使用C#和ASP.Net设置type ="password"的输入标记的值

Cok*_*god 3 c# asp.net

所以我有这个输入标签:

<input type="password" id="password" name="password" runat="server" />
Run Code Online (Sandbox Code Playgroud)

我试图在页面加载之前使用C#和ASP.Net设置其值,但我无法让它工作.

Kev*_*ock 9

不要在标记中设置输入类型,否则ASP.NET将在呈现之前清除输入.而是使用以下标记:

<input id="tbPassword" name="password" runat="server" />
Run Code Online (Sandbox Code Playgroud)

...以及代码隐藏中的以下代码:

tbPassword.Value = "your password";
tbPassword.Attributes["type"] = "password";
Run Code Online (Sandbox Code Playgroud)

但是,我强烈建议不要采用这种方法.首先,您不应该以纯文本格式存储密码.这是一个非常糟糕的安全实践.

二,如果您只是要在代码中设置密码,为什么要求它呢?密码输入的点是用于用户交互(输入密码).如果你为他们这样做,那么在页面上拥有它是毫无意义的.

  • 或者,您可以将类型保留为密码,但可以通过属性设置值,例如`tbPassword.Attributes ["value"] ="secret"; (4认同)
  • 多么痛苦,但效果很好。我希望微软能够为我们提供一个属性来关闭此默认行为。就我而言,如果用户提交包含无效信息的表单,我只希望密码字段保留在字段中。由于一切都通过 SSL 进行,因此对于这种使用来说似乎并不是真正的安全问题。我想如果用户确实“查看源代码”,他们会以纯文本形式看到它,但浏览器不应该缓存这些页面。我看到很多网站也以这种方式工作。 (2认同)