2013-05-24 17 views
14

Mam kilka przycisków w formularzu internetowym, a gdy użytkownik je kliknie, zaktualizuje pole tekstowe. To działało, dopóki nie dodałem textmode = hasło. Teraz pole tekstowe nie wyświetla już tekstu. Debugowałem aplikację, a właściwość text otrzymywała wartość, ale po raz kolejny nie jest wyświetlana.Pole tekstowe z hasłem hasła tekstowego bez tekstu asp.net C#

Oto co próbowałem:

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; 

    } 

Mam też zmęczony to:

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; 

    } 
+0

Nie należy zmuszać tekst będzie widoczny w polu hasła. Jeśli wymusisz tekst, każdy może uzyskać hasło, patrząc na kod HTML Twojej witryny. –

+0

@ bastos.sergio Jak duży jest problem? HTML nie będzie przechowywany w dowolnym miejscu. O ile osoba wpisująca hasło nie zapisze strony na dysku tuż przed jej przesłaniem. –

+0

Nie trzeba jej zapisywać ... Spróbuj tego, kliknij prawym przyciskiem myszy w dowolnym miejscu na stronie i wybierz opcję "wyświetl kod źródłowy". To wszystko, czego potrzebujesz, aby zobaczyć html ... –

Odpowiedz

48

Jak bardzo jesteś zdesperowany?

Jeśli nie jesteś na tyle zdesperowany, aby spróbować czegoś, cokolwiek, aby to działało, nie czytaj dalej. To nie będzie miłe. OK? OK.

Podejście polega na tym, aby aplikacja internetowa uznała, że ​​nie jest to pole z hasłem. Innymi słowy, nie używaj TextMode="password".
Następnie w Page_Load umieścić txt_punch.Attributes["type"] = "password"

To wszystko. Przeglądarka będzie wiedziała, że ​​jest polem hasła (i pokazuje gwiazdki lub kropki), ale strona serwera nie będzie tego wiedzieć, więc wyśle ​​zawartość do klienta, tak jak to było w zwykłym tekście. Oczywiście, będzie to również umieścić hasło w źródle strony ...

+0

Nie jestem pewien, że jestem tak zdesperowany, lol. Myślałem o tym, zanim napisałem pytanie. Naprawdę chciałem to zrobić w kodzie za, lub w bezpieczeństwie, a co nie. Ale jeśli wszystko inne zawiedzie. Dziękuję, że wpuściłeś Btw. – nate

+0

Absolutnie łatwo, ale po tym, jak to zobaczyłem :) –

+0

To jest świetne rozwiązanie, szczególnie jeśli trzeba sprawdzić, czy tekst się zmienił. Korzystanie z "TextBox.Attributes.Add (" value "," yourPassword ");" uruchamia zdarzenie onTextChanged. Wspaniały. – djfranzwa

12

Kiedy ustawić właściwość trybu tekstowego TextBox do Hasło domyślne zachowanie jest dla niego nie do wyświetl wartość właściwości Text.

Pozwala to zapobiec wyświetlaniu niezamaskowanych haseł w źródłowym kodzie HTML strony.

Jednym z rozwiązań jest użycie atrybutu do przechowywania wartości hasło:

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

Source

+1

Próbowałem już tego, zobacz mój drugi post z kodem. – nate

+0

@nate - przegapiłem, przepraszam. Nie wiem, co jeszcze zasugerować. – ChrisF

+0

NP, dzięki za próby. – nate

-1

Hasło ogół nie mają na celu przedstawienie, ale jeśli mają zrobić tej stronie możesz pomóc Solution

+7

Odpowiedzi dotyczące wyłącznie linków nie są dobrymi odpowiedziami. Czy możesz tutaj załączyć najważniejsze informacje? – ChrisF

0

oparciu off Opcja pierwsza odpowiedzi Kola może spróbować tego:

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

Jest to BUG asp.net !! Algorytm sprawdzania poprawności wiadomości e-mail jest bardzo rygorystyczny, co powoduje wykluczenie niektórych ważnych wiadomości e-mail. Jeśli zmienisz TextMode z "Password" tp "SingleLine", twój kod będzie działał.

0

Nie możemy bezpośrednio przypisać wartości do pola tekstowego hasła. dla wartości przypisać hasło do pola tekstowego powinniśmy używać tekstowe atrybutów

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