只是在我走错路之前寻找一些指针。我编写了小型 C# 控制台应用程序,可以在 HKEY_LOCAL_MACHINE 和 HKEY_CURRENT_USER 下从我们的用户注册表中打开、读取、写入和删除
当然,我让它可以在我的 PC 和所有测试 PC 上运行,但是我们的一个客户在尝试运行 .exe 时遇到错误
System.Security.SecurityException:请求“System.Security.Permissions.RegistryPermission,mscorlib,版本=2.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089”类型的权限失败。
在 System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet) 在 System.Security.CodeAccessPermission.Demand() 在 Microsoft.Win32.RegistryKey.CheckSubKeyReadPermission(String subkeyName) 在 Microsoft.Win32.RegistryKey.CheckOpenSubKeyPermission(String subkeyName, Boolean > subKeyWritable) at Microsoft.Win32.RegistryKey.OpenSubKey(String name, Boolean writable) at EstateMasterClearReg.Program.Main(String[] args)
失败的动作是:
要求。第一个失败的权限类型是:System.Security.Permissions.RegistryPermission 失败的程序集区域是:Intranet
由于我无法在客户端机器上对此进行测试(他们说他们在本地运行 .exe 并以管理员身份登录)我可以做些什么来尝试并确保应用程序可以在任何机器上运行机器?
我需要使用强名称密钥和 AllowPartiallyTrustedCallers 还是应该使用 System.Security.Permissions.RegistryPermission?
谢谢你的帮助。