[转]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