编译器错误消息:CS0103:名称';ProtectedData';在当前上下文中不存在

本文关键字:上下文 不存在 ProtectedData 名称 消息 编译器 错误 CS0103 | 更新日期: 2023-09-27 18:29:16

我在尝试使用System.Security的加密代码时遇到运行时错误。我添加了对System.Security的引用,一切看起来都很好,但我收到了以下错误:"编译器错误消息:CS0103:名称"ProtectedData"在当前上下文中不存在"

这是引发错误的代码。

public static string EncryptString(SecureString input, string entropy)
    {
        byte[] salt = Encoding.Unicode.GetBytes(entropy);
        byte[] encryptedData = ProtectedData.Protect(
            Encoding.Unicode.GetBytes(ToInsecureString(input)),
            salt,
            DataProtectionScope.CurrentUser);
        return Convert.ToBase64String(encryptedData);
    }

谢谢,Sam

编译器错误消息:CS0103:名称';ProtectedData';在当前上下文中不存在

您需要为System.Security.Cryptography添加一个using语句,并且需要对System.Security.dll的引用。从你的问题来看,你只是添加了引用,而不是使用语句。

您也可以完全限定引用,而不是使用语句:

byte[] encryptedData = System.Security.Cryptography.ProtectedData.Protect(
            Encoding.Unicode.GetBytes(ToInsecureString(input)), salt,
            System.Security.Cryptography.DataProtectionScope.CurrentUser);