创建 RSACryptoServiceProvider 时出错 "Keyset does not exist"
Error "Keyset does not exist" from creating a RSACryptoServiceProvider
我的代码
csp = new RSACryptoServiceProvider(cspParms);
导致错误:“键集不存在”。
string keyContainerName = "abcd";
CspParameters cspParms = new CspParameters(24, "Microsoft Enhanced RSA and AES Cryptographic Provider", keyContainerName);
cspParms.Flags = CspProviderFlags.UseExistingKey | CspProviderFlags.UseMachineKeyStore;
RSACryptoServiceProvider csp = null;
csp = new RSACryptoServiceProvider(cspParms);
csp = new RSACryptoServiceProvider(cspParms);
导致错误:“对象已存在”。
然后我在调用之前添加了以下三行
csp = new RSACryptoServiceProvider(cspParms);
CryptoKeyAccessRule rule = new CryptoKeyAccessRule("everyone", CryptoKeyRights.FullControl, AccessControlType.Allow);
cspParms.CryptoKeySecurity = new CryptoKeySecurity();
cspParms.CryptoKeySecurity.SetAccessRule(rule);
然后我收到错误:“键集不存在”。
即使我删除了添加的三行,我仍然得到错误:密钥集不存在。
找到原因了
如果我 运行 作为管理员,则不会出现这些错误。
我使用的是 windows 10,我让每个人都可以 read/write 我的用户文件夹。但是最近我的 windows 被自动升级到 win 11。用户的安全设置发生了变化,这引起了麻烦。
我的代码
csp = new RSACryptoServiceProvider(cspParms);
导致错误:“键集不存在”。
string keyContainerName = "abcd";
CspParameters cspParms = new CspParameters(24, "Microsoft Enhanced RSA and AES Cryptographic Provider", keyContainerName);
cspParms.Flags = CspProviderFlags.UseExistingKey | CspProviderFlags.UseMachineKeyStore;
RSACryptoServiceProvider csp = null;
csp = new RSACryptoServiceProvider(cspParms);
csp = new RSACryptoServiceProvider(cspParms);
导致错误:“对象已存在”。
然后我在调用之前添加了以下三行
csp = new RSACryptoServiceProvider(cspParms);
CryptoKeyAccessRule rule = new CryptoKeyAccessRule("everyone", CryptoKeyRights.FullControl, AccessControlType.Allow);
cspParms.CryptoKeySecurity = new CryptoKeySecurity();
cspParms.CryptoKeySecurity.SetAccessRule(rule);
然后我收到错误:“键集不存在”。
即使我删除了添加的三行,我仍然得到错误:密钥集不存在。
找到原因了
如果我 运行 作为管理员,则不会出现这些错误。
我使用的是 windows 10,我让每个人都可以 read/write 我的用户文件夹。但是最近我的 windows 被自动升级到 win 11。用户的安全设置发生了变化,这引起了麻烦。