2016-06-23 14 views
2

Was ist das Hexenhandwerk?

Wie kennt ein Textbox-Typ Passwort die Länge des Passworts für jeden Benutzer, ohne dass es gebunden ist?ASP.NET Kennt mein Passwort ohne zu fragen?

Ich bin heute zum ersten Mal über dieses Phänomen gestolpert und erstaunt und verwirrt, was passiert ist?

Ich habe versucht, Benutzerfehler durch Erstellen einer eigenständigen Seite zu elimieren, nur um dies zu testen. Grundlegende Seitenstruktur abgesehen davon ist der gesamte Code auf der Seite.

ASP.NET

<asp:TextBox ID="txtUsername" runat="server" /> 
<asp:TextBox ID="txtPassword" runat="server" TextMode="Password"/> 

VB.NET

Using con As New SqlConnection 
    con.ConnectionString = ConfigurationManager.ConnectionStrings("Con").ConnectionString 
    Using cmd As New SqlCommand("TM.sp", con) 
    cmd.CommandType = CommandType.StoredProcedure 

    cmd.Parameters.Add("@UserID", SqlDbType.Int).Value = Request.QueryString("UserID") 

    con.Open() 
    Using sdr As SqlDataReader = cmd.ExecuteReader() 
     While sdr.Read() 
     txtUsername.Text = sdr("Username") 
     End While 
    End Using 

    End Using 
End Using 

In jedem Fall die txtPassword Textbox in dem versteckt type="password" Format mit der richtigen Länge Passwort ausgefüllt.

Nirgends bin ich das Passwort Bindung noch ist es in der gespeicherten Prozedur angefordert jedoch in der Datenbank zusammen mit dem Benutzernamen

Wenn ich Textmodus auf dem Passwort Textbox ändern oder nicht ausgeben den Benutzernamen Feld dann die gespeichert Passwort wird nicht mehr ausgegeben.

Kann jemand dieses Verhalten erklären und auf die zugehörige Spezifikation zeigen?

+6

das könnte die Browser-Autocomplete-Funktion sein –

+1

@the_lotus ist richtig, fügen Sie einfach dies zum Passwort-Tag 'autocomplete =" off "' zu überprüfen. Es füllt nicht mehr –

+1

Browser können Sie Passwörter speichern. – Win

Antwort

1

Das sieht wie Ihre Browser-Autocomplete-Funktion aus. Wie Vishnu Prasad sagte, try adding autocomplete="off" als eine Eigenschaft an Ihre Kontrolle, wenn Sie diese Funktion entfernen möchten.