[转]WPF中PasswordBox的简单用法
今天写小东西的时候要用到PasswordBox控件。在实例名后面点个了点之后,发现没有Text这个属性(有Password属性)在网上搜索了一下,发现有三种使用PasswordBox的方法.
- 使用其Password属性值(这个是最简单的了)
- 使用Binding,把PasswordBox中的密码值与后台数据对象的某个属性关联
- 使用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;
- }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现