none
Textboxのパスワードモードについて RRS feed

  • 質問

  • ログオン画面にTextboxが2つあります。

    一つはユーザー名を入力するTextboxでTextModeはsinglelineです。

    もう一つはパスワードを入力するTextboxでTextModeはPasswordです。

    Cookieを読み取り、TextboxID.text="ユーザー名" と TextboxPassWord.text="パスワード"とするとユーザー名は表示されますが、Passwordを表示されません。

    Modeをsinglelineに変更すると表示されますので、ModeがPasswordにしているのが原因と思われます。

    ModeがPasswordのTextboxにTextbox.text="パスワード"でTextboxに●●●●と表示させる事はできないのでしょうか?

    度々の質問で申し訳御座いませんがよろしくお願い致します。

     

    2006年6月14日 8:26

回答

  • >singlemodeではTEXT="ユーザーID"で表示されるのに、passwordmodeでは表示されないのでしょうか?

    これは仕様だと思います。実は私もうっかりしていたのですが、
    TextBox1.Attributes("Value") = "パスワード"
    として、パスワードを●●●と表示したとしても、Value属性には、しっかり生のパスワードが記述されていますので、そのWebページのHTMLソース上では、パスワードが丸見えになっています。
    なので、TextModeがpasswordの場合には、Value属性に何もセットしないようになっているのでしょう。これが私が冒頭で述べた仕様だと思うの理由です。

    >singlemodeでもTextBox1.Attributes("Value") = "ユーザーID"と記述した方が良いのでしょうか。

    WebサーバーコントロールのTextBoxは、ブラウザに送信される時にHTMLのテキストボックスに変換されます。このHTMLのテキストボックスに値をセットするのがValue属性になります。
    このようにWebサーバーコントロールは、最終的にはHTMLの世界になりますので、そのことに注意して下さい。

    ですから、TextBox1.Text = "hoge"も、最終的には、Value属性に値をセットした形でHTMLに変換されますので、TextBox1.Attributes("Value") = "hoge"の結果と同じになります。
    Attributesを使うのは、Webサーバーコントロールでサポートされていない属性を、HTMLのコードを直接イメージして指定する場合ですので、Textプロパティがあるのであれば、わざわざAttributes("Value")を使う理由はないでしょう。

    2006年6月15日 2:56
    モデレータ

すべての返信

  • TextBox1.Attributes("Value") = "パスワード"

    です。

    2006年6月14日 8:59
    モデレータ
  • trapemiya様

    Attributesを始めて知りました。ASP.NET初心者ですので申し訳ありません。

    WebControl.AttributesについてMSDNで調べる

    「Attributesコレクションには、Web サーバー コントロールの開始タグで宣言されたすべての属性のコレクションが格納されます。これによって、Web サーバー コントロールに関連付けられた属性をプログラムで制御できます。コレクションに属性を追加したり、コレクションから属性を削除したりできます。」 とありました。

    singlemodeではTEXT="ユーザーID"で表示されるのに、passwordmodeでは表示されないのでしょうか?

    singlemodeでもTextBox1.Attributes("Value") = "ユーザーID"と記述した方が良いのでしょうか。

    自分なりに調べてみますが、ご回答頂けると幸いです。

    2006年6月14日 23:41
  • >singlemodeではTEXT="ユーザーID"で表示されるのに、passwordmodeでは表示されないのでしょうか?

    これは仕様だと思います。実は私もうっかりしていたのですが、
    TextBox1.Attributes("Value") = "パスワード"
    として、パスワードを●●●と表示したとしても、Value属性には、しっかり生のパスワードが記述されていますので、そのWebページのHTMLソース上では、パスワードが丸見えになっています。
    なので、TextModeがpasswordの場合には、Value属性に何もセットしないようになっているのでしょう。これが私が冒頭で述べた仕様だと思うの理由です。

    >singlemodeでもTextBox1.Attributes("Value") = "ユーザーID"と記述した方が良いのでしょうか。

    WebサーバーコントロールのTextBoxは、ブラウザに送信される時にHTMLのテキストボックスに変換されます。このHTMLのテキストボックスに値をセットするのがValue属性になります。
    このようにWebサーバーコントロールは、最終的にはHTMLの世界になりますので、そのことに注意して下さい。

    ですから、TextBox1.Text = "hoge"も、最終的には、Value属性に値をセットした形でHTMLに変換されますので、TextBox1.Attributes("Value") = "hoge"の結果と同じになります。
    Attributesを使うのは、Webサーバーコントロールでサポートされていない属性を、HTMLのコードを直接イメージして指定する場合ですので、Textプロパティがあるのであれば、わざわざAttributes("Value")を使う理由はないでしょう。

    2006年6月15日 2:56
    モデレータ
  • trapemiya様

     ご丁寧な解説ありがとうございました。とても分かりやすく勉強になりました。

     今後ともよろしくお願い致します。

    2006年6月15日 3:39