it-swarm.com.de

Textfeld mit Textmode-Kennwort, das keinen Text enthält. Asp.net c #

Ich habe ein paar Schaltflächen in einem Webformular, und wenn der Benutzer darauf klickt, wird das Textfeld aktualisiert. Das funktionierte, bis ich das textmode = Passwort hinzugefügt habe. Das Textfeld zeigt den Text jetzt nicht mehr an. Ich habe die App debuggt und die Texteigenschaft erhält den Wert, aber wieder wird sie nicht angezeigt.

Folgendes habe ich ausprobiert:

 protected void btn_punch_7_Click(object sender, EventArgs e)
    {

        const string string_punch_Number_7 = "7";
        var text = txt_punch.Text;
        text += string_punch_Number_7;

        txt_punch.Text = text;


    }

    protected void btn_punch_8_Click(object sender, EventArgs e)
    {
        const string string_punch_Number_8 = "8";
        var text = txt_punch.Text;
        text += string_punch_Number_8;

        txt_punch.Text = text;

    }

Ich habe das auch müde:

public partial class WebForm3 : System.Web.UI.Page
{
    public string string_punch;
    protected void Page_Load(object sender, EventArgs e)
    {
        MultiView1.SetActiveView(View1);

        txt_punch.Width = 300;
        txt_punch.Height = 50;
        txt_punch.MaxLength = 4;
        txt_punch.Attributes.Add("OnChange", string_punch);

    }

    protected void btn_punch_7_Click(object sender, EventArgs e)
    {

        const string string_punch_Number_7 = "7";
        string_punch = txt_punch.Text;
        string_punch += string_punch_Number_7;

        txt_punch.Text = string_punch;


    }

    protected void btn_punch_8_Click(object sender, EventArgs e)
    {
        const string string_punch_Number_8 = "8";
        string_punch = txt_punch.Text;
        string_punch += string_punch_Number_8;

        txt_punch.Text = string_punch;

    }
18
nate

Wie verzweifelt bist du?

Wenn Sie nicht verzweifelt genug sind, etwas zu versuchen, alles, damit es funktioniert, lesen Sie nicht weiter. Das wird nicht schön sein. OK? OK.

Der Trick besteht darin, dass die Web-App den Eindruck erweckt, es sei kein Kennwortfeld. Verwenden Sie also nicht TextMode="password".
Dann in Page_Load, txt_punch.Attributes["type"] = "password"

Das ist es. Der Browser weiß, dass es sich um ein Kennwortfeld handelt (und zeigt Sternchen oder Punkte), aber die Serverseite weiß es nicht. Daher sendet er den Inhalt als Klartext an den Client. Natürlich wird das Passwort auch in die Seitenquelle eingefügt ...

53
Mr Lister

Wenn Sie die TextMode-Eigenschaft eines TextBox auf Password festlegen, wird standardmäßig der Wert der Text-Eigenschaft nicht angezeigt.

Dadurch wird verhindert, dass unmaskierte Kennwörter im HTML-Quellcode der Seite angezeigt werden.

Eine Lösung besteht darin, ein Attribut für den Kennwortwert zu verwenden:

TextBox.Attributes.Add("value", "yourPassword");

Quelle

14
ChrisF

Basierend auf der ersten Option von Kola können Sie Folgendes versuchen:

TextBox.Attributes["value"] = "Whatever value goes here";
0

wir können dem Kennwort-Textfeld nicht direkt Werte zuweisen Wenn Sie dem Textfeld-Kennwort Werte zuweisen möchten, sollten wir Textfeldattribute verwenden

Textbox1.Attributes.Add("value",variable/"string");
0
Hafsal Rh

Dies ist ein asp.net BUG !! Der E-Mail-Validierungsalgorithmus ist sehr streng und führt zum Ausschluss einiger gültiger E-Mails. Wenn Sie den TextMode von "Passwort" zu "SingleLine" wechseln, funktioniert Ihr Code.

0
Alexandros A

Wenn Sie die Eigenschaft des Textfelds auf TextMode = "Password" setzen, dann im Bearbeitungsmodus Textfeld leer . Wenn du den Wert gerne ausfüllst 

TextBox.Text = "Password";

funktioniert dann nicht und Sie müssen das Kennwort erneut eingeben, um das Formular zu speichern. Sie können Attribute verwenden, um den Wert in das Textfeld wie im folgenden Code auszufüllen.

TextBox.Attributes["value"] = "your password value";
0
A.M. Patel