如何防止Chrome自动填充“使用密码:”选项?

15

这是示例:

https://drive.google.com/file/d/0B4CwNQ_rOoDVUVZSY3h0QXVBaG8/view

<asp:TextBox ID="TextBoxPassword" runat="server" TextMode="Password" autocomplete="off"></asp:TextBox>

我想防止系统中的密码自动填充。使用autocomplete="off"似乎无效。当窗口加载时,我可以使用$('#<%= TextBoxPassword.ClientID %>').val("");来防止它,但在Chrome浏览器中还有另一种选项叫做Use password for:,某些人可以通过使用该选项来获取密码。那么我该如何防止它呢?

我不是指属于Chrome浏览器的“黄色背景”。


5
可能是禁用Chrome自动填充的重复问题。 - Knelis
这段内容涉及编程,翻译成中文如下:如果浏览器工具栏有阻止密码保存的选项,仅限于当前的aspx页面使用,那么这将是解决方案。如果有任何阻止保存密码的想法,将非常有帮助。 - charitha amarasinghe
1
好的,我有一个技巧可以防止在我的密码文本区域中填入不必要的密码。这是一个黑客技巧!我添加了另一个密码文本区域并将其display:none。在这种情况下,我认为使用浏览器无法识别真正的区域来填写他保存的密码。<input type="password" style="display:none" /><%-- 防止浏览器的密码输入(自动填充)进行此操作。--%> - charitha amarasinghe
3个回答

15
使用 autocomplete="new-password",根据规范

编辑:糟糕,完全忽略了链接的单词。如果链接失效,请在此粘贴相关代码。 - Xyan Ewing
1
@Xyan 我成功地将以下代码直接添加到 ASP.NET TextBox 标记中,如下所示:<asp:TextBox ID="txtMyPassword" runat="server" TextMode="Password" Width="100%" CssClass="form-control" MaxLength="9" autocomplete="new-password" /> 将此代码添加到一个 TextBox 中会禁用 Chrome 浏览器上我页面上所有其他密码 TextBox 的自动填充功能。谢谢! - Haywain
1
这对我不起作用...自回答发布以来有什么变化吗? - jtate
1
似乎没有编程方法可以关闭它。只有最终用户可以这样做。 好吧,原始问题是,作为最终用户,我如何关闭此功能?如果答案已经发布在上面,那么它并不清楚,与无法工作的编程内容混合在一起。 此功能非常危险,因为它使任何使用我的计算机的人都可以访问我的银行账户 :( - Mick

3
在IE中,您需要像这样操作:
<asp:TextBox ID="TextBoxPassword" runat="server" AutoCompleteType="Disabled"></asp:TextBox>

在所有其他浏览器中,这段代码:
<asp:TextBox ID="TextBoxPassword" runat="server" autocomplete="Off"></asp:TextBox>

我很确定你需要把'off'更改为'Off'。
在HTML中,如你所提到的,可以使用;
<form action="demo_form.asp" autocomplete="on">
  First name:<input type="text" name="fname"><br>
  Last name: <input type="text" name="lname"><br>
  E-mail: <input type="email" name="email" autocomplete="off"><br>
  <input type="submit">
</form

可以在表单或输入本身上进行设置。

也许代码中的其他内容重新启用了它?

希望这能够解决问题。 刚刚测试过,没有任何问题。无论是IE还是Chrome都没有问题。


HTML不区分大小写,所以无论您输入"Off"、"off"、"OFF"还是"oFf"都没有关系。请注意,如果您对Google Chrome的新功能"Use password for"遇到了问题,该功能会列出您曾经保存密码的所有帐户,目前似乎没有任何编程方式可以关闭它。只有最终用户可以关闭。 - UncaAlby

0

对我来说,这些都没有解决问题。我找到了两个解决方法。

首先,Chrome / FF / IE会忽略将自动完成信息设置为只读字段的情况, 其次,当字段具有初始值!=空时也会忽略。

因此,您需要将表单字段设置为只读,然后在用户聚焦它们时删除属性(可以使用JavaScript或在代码后端以编程方式完成)。

例如,在简单的HTML中:

<input readonly="readonly" onfocus="this.removeAttribute('readonly');" type="text" value="stored@domain.com">

在HTML-ASPX中:

<asp:TextBox runat="server" ID="TxtEmployeId" ReadOnly="true" MaxLength="100"/>

另外/或者,您可以为该字段设置一个固定值(在数字字段的情况下,您可以将其设置为0)。

 if (!Page.IsPostBack)
 {
     TxtEmployeId.Text = "@";
 }

我知道这个解决方案并不是很方便,因为你需要针对每个出现问题的字段/页面进行应用。但它确实有效 :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接