You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在ASP.NET Web Form中禁用Chrome浏览器的表单自动填充?

在ASP.NET Web Form中禁用Chrome表单自动填充的有效方案

Chrome新版本会忽略常规的 autocomplete="off"/disable/none 属性,以下是经过验证的可行方案:

方案1:利用autocomplete="new-password"属性

Chrome会跳过标记为new-password的字段自动填充,即使是普通文本框也适用:

  • 前端标记直接设置:
    <asp:TextBox ID="txtUsername" runat="server" autocomplete="new-password"></asp:TextBox>
    <asp:TextBox ID="txtPassword" runat="server" TextMode="Password" autocomplete="new-password"></asp:TextBox>
    
  • 后台代码动态添加:
    txtUsername.Attributes.Add("autocomplete", "new-password");
    txtPassword.Attributes.Add("autocomplete", "new-password");
    

方案2:readonly属性结合聚焦触发

Chrome不会填充设为readonly的字段,可通过聚焦时移除readonly实现正常输入:

  • 普通文本框:
    <asp:TextBox ID="txtEmail" runat="server" readonly="readonly" onfocus="this.removeAttribute('readonly');"></asp:TextBox>
    
  • 密码框(初始设为text类型避免预填充):
    <asp:TextBox ID="txtPassword" runat="server" type="text" readonly="readonly" 
                 onfocus="this.type='password'; this.removeAttribute('readonly');"></asp:TextBox>
    

方案3:自定义随机autocomplete值

设置Chrome无法识别的自定义属性值,使其跳过自动填充:

<asp:TextBox ID="txtUser" runat="server" autocomplete="custom-no-autofill-987"></asp:TextBox>

或后台添加:

txtUser.Attributes.Add("autocomplete", Guid.NewGuid().ToString());

方案4:隐藏假字段"欺骗"Chrome

在表单最前端添加隐藏的用户名/密码字段,让Chrome优先填充这些假字段,实际输入框就不会被填充:

<form id="form1" runat="server">
    <!-- 隐藏的假字段 -->
    <input type="text" style="display: none !important;" name="fake-username" autocomplete="username" />
    <input type="password" style="display: none !important;" name="fake-password" autocomplete="password" />
    
    <!-- 实际业务输入框 -->
    <asp:TextBox ID="txtRealUsername" runat="server"></asp:TextBox>
    <asp:TextBox ID="txtRealPassword" runat="server" TextMode="Password"></asp:TextBox>
</form>

内容的提问来源于stack exchange,提问作者Attiq Arain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 16:24:21