[轉]WPF中PasswordBox的簡單用法


今天寫小東西的時候要用到PasswordBox控件。在實例名后面點個了點之后,發現沒有Text這個屬性(有Password屬性)在網上搜索了一下,發現有三種使用PasswordBox的方法.

  1. 使用其Password屬性值(這個是最簡單的了)
  2. 使用Binding,把PasswordBox中的密碼值與后台數據對象的某個屬性關聯
  3. 使用PasswordBox的SecurePassword屬性

本文主要聊聊第三個方法。SecurePassword這個屬性是在.NET 3.5 SP1的時候加進來的屬性。

 

SecurePassword的數據類型是SecureString. 對於SecurePassword類型實例,往里寫值容易,往外讀值就難了,要不然怎么叫"加密字符串"呢. 特別提醒一點, 如果調用一個SecurePassword實例的ToString()方法,你得到的值永遠都是"System.Security.SecureString".

 

程序的運行界面如下,XAML代碼大家自己猜吧,那個反正里面有個PasswordBox的實例,名為passwordBoxPassword.

獲取passwordBoxPassword中密碼的代碼如下:

 

[c-sharp]   view plain copy
  1. // 使用一個IntPtr類型值來存儲加密字符串的起始點  
  2. IntPtr p = System.Runtime.InteropServices.Marshal.SecureStringToBSTR(this.passwordBoxPassword.SecurePassword);  
  3.   
  4. // 使用.NET內部算法把IntPtr指向處的字符集合轉換成字符串  
  5. string password = System.Runtime.InteropServices.Marshal.PtrToStringBSTR(p);  
  6.   
  7. // 順便校驗一下  
  8. if (string.IsNullOrEmpty(password) || password!="123456")  
  9. {  
  10.     MessageBox.Show("請輸入密碼""提示", MessageBoxButton.OK, MessageBoxImage.Asterisk);  
  11.     return;  
  12. }  

 文章來源:http://blog.csdn.net/fantasiax/article/details/4458525


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM