只是寻找一些指针之前,我低着头在错误的道路。我已经写打开,读,写和两个HKEY_LOCAL_MACHINE和HKEY_CURRENT_USER

下从我们的用户注册表删除小C#控制台应用程序

当然,我知道了我的电脑,所有的测试PC,但我们的一位客户在工作中得到一个错误,当他们尝试运行.exe

  

<强> System.Security.SecurityException:请求类型的权限 'System.Security.Permissions.RegistryPermission,mscorlib程序,版本= 2.0.0.0,文化=中性公钥= b77a5c561934e089' 失败 <。 / p>      

在System.Security.CodeAccessSecurityEngine.Check(对象的需求,StackCrawlMark&stackMark,布尔isPermSet)   在System.Security.CodeAccessPermission.Demand()   在Microsoft.Win32.RegistryKey.CheckSubKeyReadPermission(字符串subkeyName)   在Microsoft.Win32.RegistryKey.CheckOpenSubKeyPermission(字符串subkeyName,布尔> subKeyWritable)   在Microsoft.Win32.RegistryKey.OpenSubKey(字符串名称,布尔可写)   在EstateMasterClearReg.Program.Main(字串[] args)

     

这失败的行动是:

     

需求。   该类型的失败是第权限:   System.Security.Permissions.RegistryPermission   失败是组件的区域:   内部网

由于我不能对此进行测试的客户机(和他们说,他们有.exe文件在本地运行,并登录为管理员)有什么我可以做的尝试,并确保应用程序将任何一台机器上运行?

我是否需要使用强名称密钥和AllowPartiallyTrustedCallers或者我应该使用System.Security.Permissions.RegistryPermission?

感谢您的帮助。

有帮助吗?

解决方案

看起来,他们可能正在运行的可执行文件在网络上。让他们尝试将其复制到本地硬盘驱动器,然后重新运行。分配给可执行的权限从网络共享运行它与从本地文件系统运行之间是不同的。

另外,它可能是可能的,他们修改了默认的安全设置,这样即使是在本地运行,它被认为是Intranet区域的一部分。检查这些,也

这里的尖端也可以是有帮助的:

http://blogs.msdn.com/shawnfa /archive/2003/06/20/57023.aspx

请注意,如果你给你的集强名称,你仍然需要本地安全策略进行修改,以让您的装配相应的权限。通过自身的强名称将不授予所需的额外许可。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top