web-dev-qa-db-fra.com

Zone de texte utilisant le mot de passe textmode pour ne pas afficher le texte asp.net c #

J'ai quelques boutons sur un formulaire Web et lorsque l'utilisateur clique dessus, il met à jour la zone de texte. Cela a fonctionné jusqu'à ce que j'ai ajouté le textmode = mot de passe. Maintenant, la zone de texte ne montre plus le texte. J'ai débogué l'application, et la propriété text obtient la valeur, mais encore une fois, elle ne s'affiche pas.

Voici ce que j'ai essayé:

 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;

    }

J'ai aussi fatigué ceci:

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

Etes-vous désespéré?

Si vous n'êtes pas assez désespéré pour essayer quelque chose, que rien pour le faire fonctionner, ne lisez pas plus longtemps. Ce ne sera pas gentil. D'accord? D'ACCORD.

L'astuce consiste à faire croire à l'application Web que ce n'est pas une boîte à mots de passe. En d'autres termes, n'utilisez pas TextMode="password".
Puis dans Page_Load, mettre txt_punch.Attributes["type"] = "password"

C'est tout. Le navigateur saura qu'il s'agit d'un champ de mot de passe (et affichera des astérisques ou des points), mais le serveur ne le saura pas. Il enverra le contenu au client sous la forme d'un texte brut. Bien sûr, cela mettra aussi le mot de passe dans la source de la page ...

53
Mr Lister

Lorsque vous définissez la propriété TextMode d'un TextBox sur Password, le comportement par défaut consiste à ne pas afficher la valeur de la propriété Text.

Ceci empêche les mots de passe non masqués d’être affichés dans la source HTML de la page.

Une solution consiste à utiliser un attribut pour contenir la valeur du mot de passe:

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

La source

14
ChrisF

Basé sur l'option une des réponses de Kola, vous pouvez essayer ceci:

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

nous ne pouvons pas affecter directement des valeurs à la zone de texte du mot de passe . pour attribuer des valeurs à la zone de texte

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

Ceci est un bogue asp.net! L'algorithme de validation du courrier électronique est très strict, ce qui entraîne l'exclusion de certains courriels valides. Si vous changez le TextMode de "Mot de passe" à "SingleLine", votre code fonctionnera.

0
Alexandros A

Lorsque vous définissez la propriété de textbox sur TextMode = "Password" puis dans en mode édition, la zone de texte est vide . Si vous remplissez la valeur comme 

TextBox.Text = "Password";

puis ne fonctionne pas et vous devez saisir à nouveau le mot de passe pour enregistrer le formulaire .. Vous pouvez utiliser Attributs pour renseigner la valeur dans la zone de texte, comme ci-dessous le code.

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