2012-03-16 8 views
2

パスワードボックスがあり、確認のために入力データを取得する必要があります。パスワードボックスの値を変数として使用

マイpasswordboxのC#コード

public void textBox2_TextInput(object sender, TextCompositionEventArgs e) 
    { 
     //pass = textBox2.ToString(); 
    } 

とXAMLコード

<PasswordBox Name="textBox2" 
      PasswordChar="*" 
      TextInput="textBox2_TextInput" /> 

これは、私はそれがnull.ThisがAで返すパスワード

private void loginbutton_Click(object sender, RoutedEventArgs e) 
    { 
     usr = textBox1.Text; 
     SecureString passdat =textBox2.SecurePassword; 
     pass = passdat.ToString(); 
    }    

を捕獲するために書かれたものですダミーのデモですので、暗号化は必要ありません。以前はテキストボックスを使用していましたが、検証は正常に機能していました。牛はちょうど複雑なものです。

答えて

2

SecureString classでは値が表示されません。それがその全体のポイントです。 SecureStringは、比較、または値を変換して検査を行うメンバーがないことを

private void loginbutton_Click(object sender, RoutedEventArgs e) 
{ 
    usr = textBox1.Text; 
    String pass = textBox2.Password; 
} 
2

注:PasswordBoxに入力された値で動作できるようにしたい場合は、PasswordBox代わりのSecurePasswordメンバーのパスワードのメンバーを使用SecureStringのそのようなメンバーが存在しないことは、偶発的または悪意のある暴露からインスタンスの価値を保護するのに役立ちます。 SecureStringオブジェクトの値を操作するには、SecureStringToBSTRメソッドなど、System.Runtime.InteropServices.Marshalクラスの適切なメンバーを使用します。

 private void loginbutton_Click(object sender, RoutedEventArgs e) 
     { 
      usr = textBox1.Text; 
      txtPassword=textBox2.Text; 

      SecureString objSecureString=new SecureString(); 
      char[] passwordChar = txtPassword.ToCharArray(); 
      foreach (char c in passwordChar) 
        objSecureString.AppendChar(c); 
      objSecureString.MakeReadOnly();//Notice at the end that the MakeReadOnly command prevents the SecureString to be edited any further. 


      //Reading a SecureString is more complicated. There is no simple ToString method, which is also intended to keep the data secure. To read the data C# developers must access the data in memory directly. Luckily the .NET Framework makes it fairly simple: 
      IntPtr stringPointer = Marshal.SecureStringToBSTR(objSecureString); 
      string normalString = Marshal.PtrToStringBSTR(stringPointer);//Original Password text 

     } 
+0

それは働いた。非常に有用なありがとう –

関連する問題