2011-01-13 17 views
0

パスワードを入力する必要がある小さなウェブソリューションがあります。パスワードボックスに内容が表示されない

m_txtPassword1.Value="someChars"; 

パスワードボックスが空にレンダリングされます。私はこのようなコントロールのValueプロパティに、いくつかの文字を設定した場合、私は、2つの入力ボックス

<input type="password" runat="server" id="m_txtPassword1"/> 

を持っています。弾丸は表示されません。レンダリングされたHTMLソースを調べると、値タグもレンダリングされていません。タイプを

<input type="text" runat="server" id="m_txtPassword1"/> 

に変更すると、その文字が表示されます。これは設計によるものですか?この機能を無効にするにはどうすればよいですか?
私はvalueプロパティに実際のパスワードを入れたいとは思わないので、パスワードセットがすでにあることをユーザーに示すだけです。これは、コントロール。しかし、このためには、コントロールのvalueプロパティを設定する必要があります。

すべてのために

更新、同じ問題を抱えては:私は同じ結果と<asp:textbox id="m_txtPassword1" runat="server" TextMode="Password" />を宣言しようとしています。またm_txtPassword1.Attributes["value"]="someChars"は役に立ちませんでした。

これは本当に不可能なようです。

回避策として、runat = "server"のないプレーンhtmlとしてパスワードボックスを宣言し、マークアップのvalueプロパティを(コードビハインドから2つのプロパティを使用して)設定しました。素敵ではありませんが、私は本当に彼が既にパスワードを入力したことをユーザーに示す必要があります。
もう1つの回避策は、読み込み時にjavascriptを使用して値を設定することです。

答えて

1

これはデフォルトです。パスワードを設定することはできません。私はこの作品にする

+0

+1のおかげ。私は明日まで待つだろう、誰かがこの機能を無効にする可能性について知っているかもしれない、そうでなければ私はあなたの答えを受け入れるだろう。 – HCL

+0

クライアント側でJavascriptで何かを追加することができます。しかし、ほとんどのブラウザがパスワードフィールドを自動入力することを考慮すると、私はそれをしません。それはユーザーを混乱させる。 – Remy

1

<html> 
<head> 
<script type="text/javascript"> 
function alertValue() 
{ 
alert(document.getElementById("password1").value); 
} 
function setpassword() 
{ 
    password1.value="someChars"; 
} 
</script> 
</head> 
<body> 

<form> 
<input type="password" id="password1" value="" /> 
<input type="button" id="button1" onclick="alertValue()" value="Show default value" /> 
<input type="button" id="button2" onclick="setpassword()" value="Set value" /> 

</form> 

</body> 
</html> 

はこれを試してみてください: http://jsbin.com/ocexo5

+0

+1ありがとうございます、それは私がやった解決策に似ています、私の回避策を見てください。しかし、私の質問は、それがMSのコントロール(runat = server)を使ってできるのであれば、ハックを作らないためです。 – HCL

1

これは仕様です、セキュリティ上の理由のために - パスワードがプレーンテキストで HTMLではありませんように。

ここで、クライアント上のテキストボックス の値プロパティを設定するためのJavaScriptを書き出すことができます。もちろん、これはまだパスワードがHTMLの平文の であることを意味します。ここで

は、ページの例です:

マークアップ:

<script type="text/javascript"> 
function setPwd() 
{ 
    var Pwd = "<%=Pwd %>"; 
    var txtText = document.getElementById("MainContent_txtText"); 
    txtText.value = Pwd; 
} 
</script> 
<input type="password" id="txtText" runat="server"/> 

とコードビハインド:

public partial class _Default : System.Web.UI.Page 
    { 
     public string Pwd; 
     protected void Page_Load(object sender, EventArgs e) 
     { 

      Pwd = "password"; 
      ClientScript.RegisterStartupScript(this.GetType(),"somescript","setPwd();",true); 
     } 
    } 
+0

+1ありがとうございます。私はこれも可能性と考えていましたが、私はクライアントサイドスクリプトなしの回避策を選んで、すべてのクライアントが同じ動作をするようにしました。しかし、ありがとう、ソリューションが動作します。 – HCL

0
Textbox11.Attributes.Add("Value",whatever_your_password_is) 
+0

これは現在の問題を解決するかもしれませんが、元の目的を破ります。パスワードコントロールは値を持たないため、HTMLソースから読み込むことはできません。 –

関連する問題