【问题标题】:Chrome autofills username into random text inputChrome 将用户名自动填充到随机文本输入中
【发布时间】:2019-07-09 17:22:10
【问题描述】:

这发生在使用 Chrome 版本 72.0.3626.109(官方构建)(64 位)的 asp.net webforms 应用程序上。

该网站受密码保护。用户使用用户名和密码登录。成功登录后,用户将被重定向到“贷款搜索”页面。 Loan Search 页面包含一些文本输入。

问题是 Chrome 会将我的用户名自动填充到其中一个文本输入中(见图)。 “tregan”是我在登录页面输入的用户名。

Chrome 总是选择这个特定的文本输入来自动填充用户名(“联系邮寄地址”)。这发生在我自己和我们网站的其他几十个用户身上。

知道为什么 Chrome 会执行此自动填充功能,我能做些什么来阻止它吗?我清除了我的 Chrome 自动填充缓存,但这并没有解决问题。

【问题讨论】:

  • Chrome 默认这样做是为了帮助用户填写表单。您可以通过在 ASP:TextBox 声明中添加 autocomplete="off" 在 ASP 中进行控制,或者您可以通过执行 TextBoxID.Attributes.Add("autocomplete", "off"); 将其添加到代码隐藏中
  • @dvo,我不想关闭自动填充。我希望 Chrome 停止将我的用户名自动填充到此特定字段中。似乎莫名其妙。
  • 您可以尝试为该字段指定 AutoCompleteType。例如,如果您需要一个电子邮件字段,您可以使用<asp:TextBox runat="server" ID="TextBoxID" AutoCompleteType="Email" />,那么 Chrome 应该只自动填充缓存的电子邮件。如果您查看 VS intellisense,则 AutoCompleteType 有很多选项。试一试,看看是否能解决您的问题。
  • 感谢@dvo,但这没有任何效果。我也用谷歌搜索,发现大量抱怨 AutoCompleteType 被 Chrome 忽略了。无论如何,我真的不想关闭自动填充功能,我只想让 Chrome 停止将我的用户名自动填充到没有意义的特定输入中。
  • 有趣。对不起,没有帮助。我几乎总是禁用自动填充,因为我很少需要它。我会继续和你一起寻找。希望你能找到一个简单的解决方案。

标签: asp.net google-chrome autofill


【解决方案1】:

答案是在 asp.net 表单中添加一个不可见的文本输入,称为“用户名”。

几年前,我们在使用不同的输入时遇到了同样的问题。答案是添加一个“密码”类型的不可见输入,如this SO answer中所述,向下滚动到短语“它是如此简单和棘手......”:

Disabling Chrome Autofill

下面是完整的修复,我在我们网站的母版页的表单元素中添加了这两个元素。根据下面@Jeff_Mergler 的评论,将这些输入放在表单标签的顶部:

<input type="text" id="username" style="width:0;height:0;visibility:hidden;position:absolute;left:0;top:0" />
<input type="password" style="width:0;height:0;visibility:hidden;position:absolute;left:0;top:0" />

【讨论】:

  • 有效!注意:这仅在我将上面的元素放在表单元素的最顶部,然后放在所有其他元素之前才有效。将它们放在底部时无法正常工作,因此请确保将它们放在打开表单标签的正下方。 &lt;form ... &gt; &lt;input type="text" id="username" style="width: 0; height: 0; visibility: hidden; position: absolute; left: 0; top: 0" /&gt; &lt;input type="password" style="width: 0; height: 0; visibility: hidden; position: absolute; left: 0; top: 0" /&gt;
  • 我不敢相信我们不得不做这样混乱的解决方法只是为了防止 Chrome 自动填充字段。它变成了如此可怕的浏览器。
  • 迄今为止我得到的最佳答案
【解决方案2】:

尝试解决此问题的更多方法:

  • autocomplete="off" 添加到&lt;form&gt; 和/或&lt;input&gt;
  • 更改字段的name/id 对于其中没有“名称”或“用户”的东西
  • 如果它不在&lt;form&gt; 中,则用空的&lt;form&gt; 标签包装元素
  • 随机化输入的名称属性,或者使用data-name而不是name。您必须相应地更改处理数据的代码。

另外,我认为通过⋮→Help→Report an issue(或 Alt+Shift+I)向 Google 报告此问题会有所帮助,以鼓励他们解决这些问题。

【讨论】:

  • 感谢您的评论。我也看到了这个,但是google is intentionally ignoring autocomplete="off"。这发生在我的字段中没有名称/id 和“名称”或“用户”。这些字段包含在 &lt;form&gt; 标记内。 data-name 可以用于使用 AJAX 调用处理的字段。
【解决方案3】:

我遇到了同样的问题,我通过将我的 div 包装在表单标签中并在表单标签中添加属性 autocomplete="off" 找到了解决方法。

…… ......

【讨论】:

    【解决方案4】:

    这里也一样。这需要通过chrome解决。不得不在文本框周围添加标签只是愚蠢的。此外,快速提示任何需要添加表单标签而无需重新编写 CSS 的人。添加“显示:内容;”到表格。它会表现得好像它甚至不存在一样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-29
      • 1970-01-01
      • 2020-11-04
      • 2020-08-23
      • 2021-09-24
      • 2020-12-15
      • 2018-11-29
      • 1970-01-01
      相关资源
      最近更新 更多