C# 将wpf密码框转换为C中的SecureString#

C# 将wpf密码框转换为C中的SecureString#,c#,wpf,C#,Wpf,我正在尝试将数据从wpf密码框中获取到一个安全字符串中。这是怎么做到的? 到目前为止,我所拥有的: SecureString pass = new SecureString(); pass.AppendChar(pbox1.Password); 这当然不起作用,因此如何在不创建常规字符串的情况下获取密码数据?您需要读取其中的每个字符 SecureString pass = new SecureString(); foreach (char c in pbox1.Passwo

我正在尝试将数据从wpf密码框中获取到一个安全字符串中。这是怎么做到的? 到目前为止,我所拥有的:

 SecureString pass = new SecureString();
        pass.AppendChar(pbox1.Password);

这当然不起作用,因此如何在不创建常规字符串的情况下获取密码数据?

您需要读取其中的每个字符

SecureString pass = new SecureString();

foreach (char c in pbox1.Password)
{
  pass.AppendChar(c);
}
或者更安全地使用SecurePassword属性

SecureString pass = pbox1.SecurePassword
:

当您获得Password属性时 值,则将密码公开为 内存中的纯文本。为了避免这种情况 潜在的安全风险,请使用 获取密码的SecurePassword属性 密码作为SecureString


除非绝对需要字符串的纯文本版本,否则应避免使用Password属性。在这种情况下,请直接检索SecureString。

如果只有一种方法可以使用SecureString设置密码,那么这样做几乎违背了使用
SecureString
的目的。
SecureString pass = pbox1.SecurePassword.Copy();