2017-04-17 106 views
2

如何防止我的用戶名和密碼即使Google Smart Lock已將其保存,Chrome中的ASP.NET/C# TextBox字段也不會預填充。如何關閉自動填充功能並防止預填充字段

我可以進入Google設置並將其刪除,但下次登錄時,系統會再次提示保存此網站的密碼。出現提示時,我無法阻止本網站上的其他用戶保存密碼。

我知道有很多這個類似的問題,但沒有人似乎爲我工作。我曾嘗試(其中包括):

  1. 在我的文本框
  2. 在我的文本框設置AutoCompleteType = 「已禁用」 屬性設置自動完成= 「關閉」 屬性
  3. 此:https://stackoverflow.com/a/36904814/4241820

我銀行網站可以防止密碼被保存或預先填寫。這是如何完成的?

UPDATE:這是從我的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> 

回答

1

我們得到了這樣相同的情況,但我也跟着以下的方法來克服這種情況

在裏面的新頁面您標記之前,您txtInsuredPassword儘量保持這種輸入類型,以便您的問題將得到解決

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

儘量保持上述實際的用戶名這個MARUP和密碼

+0

感謝您的建議。我嘗試過,但預填的用戶名和密碼仍然出現。 – Windhoek

+0

@Windhoek你可以分享你的代碼嗎? – Webruster

+0

這就是: 「


」 – Windhoek

2

請勿在文本框中設置autocomplete="off",而應在放置它的表單上設置autocomplete="off"

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

+1

這個解決方案可以工作。 –

+0

感謝您的回覆。我在master頁面(包含文本框)的「表單」中添加了autocomplete =「off」。但是當我加載頁面時,預填的用戶名仍然出現。 – Windhoek

+0

@Windhoek我不知道爲什麼它仍然出現,但一個建議,不要使用相同的母版頁登錄和其他網頁。如果您在母版頁中使用身份驗證相關的東西作爲常見的跨應用程序,那麼這很有幫助。 – Imad