gpt4 book ai didi

c# - NetworkCredentials 以纯文本形式公开密码

转载 作者:行者123 更新时间:2023-11-30 19:01:26 37 4
gpt4 key购买 nike

我将要在我的 C#/WPF 应用程序中创建一个身份验证模块。要验证用户身份,我想使用 NetworkCredential存储凭据。

Credential = new NetworkCredential(credential.UserName, credential.Password);

其中 credential.UserName 是一个 stringcredential.PasswordSecureString 类型。在调试应用程序时,我可以看到纯文本密码和安全字符串密码

enter image description here

为什么密码以明文形式暴露?这不是可能的安全威胁吗?

感谢您的回答。

编辑:

根据记录,NetworkCredential 对象应在 WCF 客户端上使用,如下所示:

client.ClientCredentials.Windows.ClientCredential = Credentials

最佳答案

NetworkCredential 内部类 always stores the password作为 SecureString:

 public string Password {
get {
ExceptionHelper.UnmanagedPermission.Demand();
return InternalGetPassword();
}
set {
m_password = UnsafeNclNativeMethods.SecureStringHelper.CreateSecureString(value);
}
}

当有人需要以纯文本形式检索密码时(在某个时候需要,无论是从这个类还是从链中更远的地方),它retrieves it from the secure string :

    internal string InternalGetPassword() {
string decryptedString = UnsafeNclNativeMethods.SecureStringHelper.CreateString(m_password);
return decryptedString;
}

使用调试器时,它会显示属性,因此从 SecureString

检索值

关于c# - NetworkCredentials 以纯文本形式公开密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32740040/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com