Windows 11 - 不支持 Windows 数据保护 API (DPAPI)

Windows 11 - Windows Data Protection API (DPAPI) not supported

提问人:Meneghini 提问时间:11/11/2022 最后编辑:M. ElghamryMeneghini 更新时间:12/27/2022 访问量:760

问:

ProtectedData.Protect给了我错误“此平台不支持Windows数据保护API(DPAPI)”。

使用 Visual Studio 2022、.Net 5.0、C# 控制台应用程序和 Windows 11。

我的旧程序能够加密和解密密码,但新程序会抛出相同的错误。这是由于我最近升级到 Windows 11 吗?Windows 中是否有我需要修改的功能?

public string Encrypt(string password)
{
     var encoding = new UTF8Encoding();
     byte[] plain = encoding.GetBytes(password);
     byte[] secret = ProtectedData.Protect(plain, null, DataProtectionScope.CurrentUser);
     return Convert.ToBase64String(secret);
}

public string Decrypt(string password, EmailController EmailC)
{

    byte[] secret = Convert.FromBase64String(password);
    byte[] plain = ProtectedData.Unprotect(secret, null, DataProtectionScope.CurrentUser);
    var encoding = new UTF8Encoding();
    return encoding.GetString(plain);
}
C# .NET DPAPI

评论

2赞 M. Elghamry 11/11/2022
您是否检查过是否在项目设置中意外更改了目标平台?

答:

-1赞 Meneghini 11/11/2022 #1

M. Elghamry的评论让我朝着正确的方向前进。

我通过在项目设置中更改目标平台来解决这个问题。