Textbox выкарыстоўваючы кансольны пароль не адлюстроўваецца тэкст asp.net C #

У мяне ёсць некалькі кнопак на вэб-форму, і калі карыстальнік націскае іх, яны будуць абнаўляць тэкставае поле. Гэта працавала, пакуль я не дадаў TextMode = пароль. Цяпер тэкставае поле нічога больш не паказвае тэкст. Я адладжаная дадатак, і тэкст ўласцівасць атрымлівае значэнне, але зноў-такі не паказваецца.

Вось тое, што я спрабаваў:

 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;

    }

Акрамя таго, я стаміўся гэта:

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;

    }
16
@ Bastos.sergio Я думаў, кропку ў поле пароля ці тэкставым рэжыме, каб быць усталяваны пароль, каб замаскіраваць пароль?
дададзена аўтар nate, крыніца
@ Bastos.sergio Акрамя таго, я не бачу, пароль, які я набраны ў тэкставым полі ў крыніцы старонкі, калі я яго прагляду ў браўзэры.
дададзена аўтар nate, крыніца
@ Bastos.sergio Як вялікая праблема ў тым, што? HTML не будзе захоўвацца ў любым месцы. Калі не чалавек, набраўшы пароль будзе захаваць старонку на дыск непасрэдна перад адпраўкай.
дададзена аўтар Mr Lister, крыніца
Вядома, але гэта можа адбыцца толькі ў выпадку, калі асоба, увёўшы пароль сыходзіць перад адпраўкай. Я не думаю, што ёсць шмат рызыкі.
дададзена аўтар Mr Lister, крыніца
Тое, што вы тыпу не адкладаюцца ў HTML (ён захоўваецца ў памяці). Калі вы ўсталюеце пароль праз коду, як прыклады ніжэй, вы ўбачыце яго ў HTML. Памятаеце, што ёсць прычына, чаму такія сайты, як Facebook, Hotmail і г.д. ніколі не загружаць зыходны пароль, калі вы просіце, каб змяніць яго. Пасля таго, як вы ўсталюеце пароль з дапамогай атрыбутаў, як <�я> TextBos.Attributes.Add ( «значэнне», «ВАШ ПАРОЛЬ»); вы пакідаеце ваш сайт шырока адкрыты для хакераў.
дададзена аўтар bastos.sergio, крыніца
Ён не павінен быць захаваны ... Паспрабуйце гэта, пстрыкніце правай кнопкай мышы ў любым месцы на сайце і выбраць опцыю «зыходны код выгляду». Гэта ўсё, што варта перагледзець HTML ...
дададзена аўтар bastos.sergio, крыніца
Вы не павінны прымусіць тэкст быць бачны на полі пароля. Калі вы прымушаеце тэкст, то любы ахвочы можа атрымаць пароль, гледзячы на ​​HTML для Вашага сайта.
дададзена аўтар bastos.sergio, крыніца

6 адказы

Як адчайны ты?

Калі вы не дастаткова адчайным, каб паспрабаваць што-небудзь, што-небудзь, каб прымусіць яго працаваць, не чытаць. Гэта не будзе добра. ДОБРА? ДОБРА.

The trick is to make the web app think that it's not a password box. In other words, don't use TextMode="password".
Then in Page_Load, put txt_punch.Attributes["type"] = "password"

Вось і ўсё. Браўзэр будзе ведаць, што гэта поле пароля (і паказаць зорачкі або кропкі), але на боку сервера не будзе ведаць, таму ён будзе пасылаць змесціва кліенту ў ім былі просты тэкст. Вядома, гэта будзе таксама паставіць пароль у зыходным кодзе старонкі ...

51
дададзена
Абсалютна лёгка, але пасля таго, як я ўбачыў гэта :)
дададзена аўтар Subrata Sarkar, крыніца
Я не тое, што ўпэўнены, што я, што адчайны, lol.I думаў пра гэта, перш чым я адказваў на гэтае пытанне. Я сапраўды хацеў зрабіць гэта ў кодзе ззаду, i нацыянальнай бяспекi, а што не. Але калі ўсё астатняе трывае няўдачу. Дзякуй для вас ўваход ДАРЭЧЫ.
дададзена аўтар nate, крыніца
@visual Ён гасіць пароль, таму што 1) у адваротным выпадку ён павінен адправіць пароль па лініі зноў, што з'яўляецца пагрозай для бяспекі, 2), як я сказаў, пароль асядае ў выглядзе простага тэксту ў зыходным кодзе старонкі (і ў браўзэра кэш на цвёрдым дыску кампутара), які ўяўляе сабой пагрозу бяспецы. 3) Пароль адлюстроўваецца як ●●●●●●● на экране, таму карыстальнік не можа бачыць, калі яны былі памылкі друку, і ім трэба будзе ўвесці яго зноў у любым выпадку! 4) Гэта не толькі Microsoft, кожны робіць гэта так.
дададзена аўтар Mr Lister, крыніца
гэта працуе, дзякуй, толькі што (як і ў Microsoft) пераблыталіся чалавек, што з'яўляецца кропкай тыпу пароля, калі не выкарыстоўваецца правільна, гэта прывядзе да скіду пароля пустым на абнаўлення ...
дададзена аўтар visual, крыніца
@MrLister, дзякуй за тлумачэнні, гэта мае сэнс, я мяркую, лепш логіка будзе, калі абнаўленне будзе націснутая парамэтар пароля пустым, то не рабіце абнаўленне або шоў «праверка» паведамленне, «пароль неабходны» для абнаўлення ,
дададзена аўтар visual, крыніца
Гэта такое вялікае рашэнне, асабліва калі вам трэба, каб праверыць, ці змяніўся тэкст. Выкарыстанне "TextBox.Attributes.Add (" каштоўнасць "" ВАШ ПАРОЛЬ ");" выстрэльвае свой OnTextChanged падзея. Выдатна.
дададзена аўтар djfranzwa, крыніца

Пры ўсталёўцы TextMode ўласцівасці TextBox пароля па змаўчанні для гэтага, каб не адлюстроўваць значэнне ўласцівасці Text.

Гэта робіцца для прадухілення масак пароляў, паказаныя ў HTML зыходны код старонкі.

Адным з рашэнняў з'яўляецца выкарыстанне атрыбуту для захоўвання значэння пароля:

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

Крыніца

14
дададзена
Не працуе вельмі доўга. Змест губляецца на кожным постбэка. Гэтая рэч зламаная. Павінен выкарыстоўваць <�жэрах: TextBox тып = "пароль" /> замест <�жэрах: TextBox TextMode = "Пароль" /> . Тады ўласцівасць Text можна выкарыстоўваць у звычайным рэжыме.
дададзена аўтар ygoe, крыніца
Працуе добра. <�Код> textBox.Attributes [ "значэнне"] = "пароль"; у Page_Load замест TextBox.Text = "пароль"; .
дададзена аўтар ygoe, крыніца
Я ўжо спрабаваў, калі ласка, глядзіце мой другі код пост.
дададзена аўтар nate, крыніца
NP, дзякуй за спробу.
дададзена аўтар nate, крыніца
@MrLister Калі ласка, прачытайце другі блок кода.
дададзена аўтар nate, крыніца
Той, дзе вы даеце тэкставае поле атрыбут OnChange = «78» ?
дададзена аўтар Mr Lister, крыніца
@nate я не бачу, дзе вы спрабавалі гэта. Я прыдумаў альтэрнатыўнае рашэнне, хоць ...
дададзена аўтар Mr Lister, крыніца
@nate - прапусціў гэта, прабачце. Не ведаю, што яшчэ прапанаваць.
дададзена аўтар ChrisF, крыніца

Password generally are not meant to SHOW, but if you are intended to do so this page may help you Solution

1
дададзена
Спасылка толькі адказы ня добрыя адказы. Вы можаце ўключаць у сябе аснову адказу тут.
дададзена аўтар ChrisF, крыніца

Аснова варыянту адзін з адказу Кольскага ў вы можаце паспрабаваць гэта:

TextBox.Attributes["value"] = "Whatever value goes here";
0
дададзена

мы не можам напрамую прысвойваць значэнне тэксту поля пароля. для прысваення значэнняў тэксту пароля скрыні мы павінны выкарыстоўваць атрыбуты TextBox

Textbox1.Attributes.Add("value",variable/"string");
0
дададзена

Гэта asp.net BUG !! Алгарытм праверкі электроннай пошты з'яўляецца вельмі строгім, што прыводзіць да выключэння некаторых сапраўдных лістоў. Калі вы пераключыце TextMode ад «Пароль» TP «SingleLine», ваш код будзе працаваць.

0
дададзена