ASP:TextBox-Wert verschwindet in postback nur, wenn das Passwort
Habe ich eine asp.net textbox so:
<asp:TextBox ID="PINPad" runat="server" Columns="6" MaxLength="4"
CssClass="PINTextClass"></asp:TextBox>
Es ist, wie Sie vielleicht schon erraten haben, ist das Textfeld auf dem Bildschirm PIN-pad. Javascript füllt die Werte. Die Seite wird zurück gebucht, der alle fünf Sekunden (mit einem update panel, falls jene Gegenstände) zu aktualisieren verschiedene andere, nicht Verwandte Elemente auf dem Bildschirm. Das funktioniert ganz gut.
Allerdings, wenn ich konvertieren es in ein Textfeld Kennwort ein, wie diese:
<asp:TextBox ID="PINPad" runat="server" Columns="6" MaxLength="4"
CssClass="PINTextClass" TextMode="Password"></asp:TextBox>
Dann, wenn die Seite Beiträge zurück, wird das Textfeld deaktiviert ist auf dem Bildschirm und die textbox leer ist (obwohl während das timer-Ereignis, das Wert hat es wieder zurück an den server.)
Irgendwelche Vorschläge wie man dieses Problem beheben, so dass es behält seinen Wert während der postback?
- Dort ist Artikel auf, wie zu lösen dieses mehr sicher (wenn auch nicht perfekt) bei codeproject.com/Articles/18927/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als ein Sicherheits-feature, ASP.NET versucht zu verbieten, Sie von dem senden der Passwort-Wert zurück an den client. Wenn Sie okay sind mit den Fragen der Sicherheit (D. H. es ist entweder nicht wirklich sicheren Informationen, oder sind Sie sicher, dass die Verbindung sicher ist), können Sie manuell die
"value"
- Attribut des Steuerelements, anstatt mit seinerText
Eigenschaft. Es könnte wie folgt Aussehen:hier ist ein weiterer Weg, es zu tun:-
Das problem des Verlustes des Passwortes in die postback werden können, vermeiden Sie die Verwendung von Asynchronen JavaScript aufgerufen wird, beschreibe ich ein typisches Szenario für eine Login-Seite:
Können sagen, wir haben eine Anmeldeseite, die der Benutzer ändern Sie die Sprache der Etiketten, wenn der Benutzer eine Sprache wählen, die mit einer dropdownlist
würde eine Lösung sein, rufen selectedIndexChanged Ereignis des dropdownlist, eine postback, das geht auf die server und holt die Etiketten in der gewählten Sprache.
in diesem Szenario ist das Feld " Passwort verloren durch das Sicherheits-feature von ASP.NET das macht Passwörter Felder nicht beibehalten, zwischen postbacks.
Diesem Szenario kann gelöst werden, wenn der postback wird vermieden, die Verwendung von Asynchronous JavaScript Technology and XML (Ajax) - Aufrufe.
Fügen Sie eine javascript-Funktion, die aufgerufen werden, aus dem dropdownlist-Steuerelement, in diesem Fall diese Funktion zugewiesen ist, die Command-Eigenschaft des dropdownlist im code behind:
Die Translate-Funktion nimmt als parameter die option ausgewählte Sprache in der dropdown-Steuerelement und führt die asynchrone Aufruf (siehe unten).
die Funktion Übersetzen Sie oben gezeigt wird, führt der Aufruf und die Ergebnisse in der angegebenen .aspx-Seite (in diesem Fall "GetLoginTranslations.aspx")
wenn die Anforderung abgeschlossen ist und die Anforderung.onreadystatechange wird festgelegt, um die Funktion TranslateLabels diese Funktion ausgeführt werden soll.
auf diese Weise wird der postback wird nicht ausgeführt, bevor Sie in die event onSelectedIndexChanged des dropdownlist-Steuerelement.
den TranslateLabels-Funktion würde so Aussehen :
Anfrage.responseXML enthält die XML-gebaut in die Seite GetLoginTranslations.aspx und die Struktur dieser XML definiert ist.
Page_Load () - Ereignis in der GetLoginTranslations.aspx Aussehen sollte:
Einige weitere überlegungen: