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中密码的代码如下:

// 使用一个IntPtr类型值来存储加密字符串的起始点 IntPtr p = System.Runtime.InteropServices.Marshal.SecureStringToBSTR(this.passwordBoxPassword.SecurePassword); // 使用.NET内部算法把IntPtr指向处的字符集合转换成字符串 string password = System.Runtime.InteropServices.Marshal.PtrToStringBSTR(p); // 顺便校验一下 if (string.IsNullOrEmpty(password) || password!="123456") { MessageBox.Show("请输入密码", "提示", MessageBoxButton.OK, MessageBoxImage.Asterisk); return; }

如果程序中的PasswordBox比较多,建议提前引用System.Runtime.InteropServices名称空间.

OVER

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值