• 【转载】wpf学习笔记4


    今天写小东西的时候要用到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中密码的代码如下:

    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.     MessageBox.Show("请输入密码", "提示", MessageBoxButton.OK, MessageBoxImage.Asterisk); 
    10.     return

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

  • 相关阅读:
    xutils3批量上传文件
    超详细Android面试的准备与经历分享 | 百度(offer)
    [网站公告]3月10日23:00-4:00阿里云SLB升级,会有4-8次连接闪断团队
    上周热点回顾(3.2-3.8)团队
    发布新博客皮肤red_autumnal_leaves团队
    上周热点回顾(2.23-3.1)团队
    上周热点回顾(2.16-2.22)团队
    上周热点回顾(2.2-2.8)团队
    如何禁止IE自动生成链接团队
    [云上天气预报-有时有闪电]2月3日23:00-4:00阿里云SLB升级期间网络会闪断团队
  • 原文地址:https://www.cnblogs.com/fx2008/p/2423492.html
Copyright © 2020-2023  润新知