如何关闭自动完成并防止字段预先填充

时间:2017-04-17 04:29:05

标签: c# asp.net google-chrome

如果防止我的用户名和密码ASP.NET / C#TextBox字段在Chrome中预先填充,即使Google Smart Lock已将其保存。

我可以进入Google设置并将其删除,但下次登录时,系统会再次提示我保存此网站的密码。我无法阻止此网站上的其他用户在提示时保存其密码。

我知道有很多类似的问题,但似乎没有一个对我有用。我试过(等等):

  1. 在我的TextBox中设置autocomplete =“off”属性
  2. 在我的TextBox中设置AutoCompleteType =“Disabled”属性
  3. 这:https://stackoverflow.com/a/36904814/4241820
  4. 我的银行网站可以防止密码被保存或预先填写。怎么做的?

    更新:这是我的Login.aspx页面中的代码:

    <%@ Page Title="" Language="C#" MasterPageFile="./MyMasterPage.Master" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="MyApp.Login" %>
    
    <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
    </asp:Content>
    <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
        <table style="width: 294px; margin-left: auto; margin-right: auto; margin-top: 80px; margin-bottom: auto; border: none; border-collapse: collapse;">
            <tr style="background-color: #FFFFFF;">
                <td style="text-align: center;">
                    <br />
                    <img src="Images/AppLogo.png" alt="Application Logo" />
                </td>
            </tr>
            <tr>
                <td style="background-color: #FFFFFF; text-align: center;">
                    <asp:PlaceHolder runat="server" ID="LoginStatus" Visible="false">
                        <p>
                            <asp:Label ID="lblStatus" CssClass="lblSkin" runat="server" />
                        </p>
                    </asp:PlaceHolder>
                    <asp:PlaceHolder runat="server" ID="LoginForm" Visible="false">
                        <br />
                        <asp:Label ID="lblTitle" CssClass="lblSkinLarge" runat="server" /><br />
                        <br />
                        <div style="margin-bottom: 10px">
                            <input style="display: none" type="text" name="fakeusername" />
                            <asp:Label Text="Username" CssClass="lblSkin" AssociatedControlID="UserName" runat="server" /><br />
                            <asp:TextBox runat="server" ID="UserName" Width="244px" autocomplete="off" AutoCompleteType="Disabled" />
                        </div>
                        <div style="margin-bottom: 10px">
                            <input style="display: none" type="password" name="fakepassword" />
                            <asp:Label Text="Password" AssociatedControlID="Password" CssClass="lblSkin" runat="server" /><br />
                            <asp:TextBox runat="server" ID="Password" TextMode="Password" Width="244px" autocomplete="off" />
                        </div>
                        <div style="margin-bottom: 10px">
                            <div>
                                <asp:ImageButton AlternateText="Login" ImageUrl="~/Images/btnLogin.jpg" OnClick="SignIn" runat="server" />
                                <br />
                                <asp:HyperLink ID="lnkForgotPassword" CssClass="lblSkin" NavigateUrl="Login_ResetPassword.aspx" Text="Forgot password" runat="server" />
                            </div>
                        </div>
                    </asp:PlaceHolder>
                    <asp:PlaceHolder runat="server" ID="LogoutButton" Visible="false">
                        <div>
                            <div>
                                <asp:Button runat="server" OnClick="SignOut" Text="Log out" />
                            </div>
                        </div>
                    </asp:PlaceHolder>
                </td>
            </tr>
        </table>
    </asp:Content>
    

2 个答案:

答案 0 :(得分:3)

不要在文本框中设置autocomplete="off",而是在放置它的表单上。

<form id="form1" runat="server" autocomplete="off">

答案 1 :(得分:1)

我们得到了同样的情况,但我遵循以下方法来克服这种情况

在txtInsuredPassword尝试保留此输入类型以便解决问题之前,在Mark Up内的新页面中

   <input style="display: none" type="text" name="fakeusername" />
  <input style="display: none" type="password" name="fakepassword" />

尝试将此marup保持在您的实际用户名和密码之上