2011-05-19 34 views
0

我添加了清单文件与元素.NET控制台应用程序总是崩溃

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> 

我建项目,并将其保持在一个非管理员运行它崩溃。

未处理的异常信息:System.Security.SecurityException:请求 的行政许可法上型的 “System.Security.Permissions.RegistryPermission,mscorlib程序,版本= 2。 0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'失败。在System.Security.CodeAccessSecurityEngine.Check(对象的需求, StackCrawlMa RK & stackMark,布尔isPermSet)在 System.Security.CodeAccessPermission.Demand()在 Microsoft.Win32.RegistryKey.CheckSubKeyReadPermission(字符串 subkeyName)在 微软。 Win32.RegistryKey.CheckOpenSubKeyPermission(字符串 subkeyName,B oolean subKeyWritable)在 Microsoft.Win32.RegistryKey.OpenSubKey(字符串名称,布尔可写的) 在 LotusTrustedSites.RegistryKeyExtensionMethods.GetOrCreateSubKey(RegistryKe Ý的RegistryKey,字符串parentKeyLocation,String键,布尔可写) at LotusTrustedSites.ReportDownloader.Main(String [] args )失败的动作 物:需求失败 是类型第一许可的:System.Security.Permissions.RegistryPermission

失败的组件或应用程序域是:MyApp的,版本= 1.0.0.0, 文化=中性公钥=空导致该 故障是所述的方法:Microsoft.Win32.RegistryKey GetOrCreateSubKey(Microsoft.Win32.RegistryKey,SYSTE m.String, System.String,布尔值)

回答

5

当然它失败。您告诉它需要管理员访问权限,而非管理员帐户无法提供该权限。您是否期望它以非管理员用户的管理员权限运行?如果可能的话,那将是Windows的一个主要安全缺陷。

如果您需要以非管理员可访问的管理员身份运行应用程序,我知道的唯一方法是将该应用程序安装为计划任务,并将任务设置为使用管理员帐户运行。非管理员仍应该能够看到并运行此任务,并且它将使用提供的管理员凭据。

+0

Windows服务以管理员身份运行的。无论如何要伪装成管理员? – 2011-05-19 13:49:57

+0

@Cocoa Windows服务并不总是以管理员身份运行。他们可以使用您指定的任何帐户运行。但至于如何伪装广告管理员,请再读一遍我的第二段。您还可以提供桌面快捷方式来启动计划任务。 – 2011-05-19 13:57:46

0

您指定requireAdministrator,但您没有以管理员身份运行它。您应该将其更改为asInvoker或者您应该以管理员身份运行它。

+0

我将它作为requireAdministrator离开它,然后创建了一个执行runas/user的VBScript:DOMAIN \ username NameOfApp。exe – 2011-05-20 14:56:16

0

据我所见,你试图获得一些注册表权限。这就是它需要管理权限的原因。

尝试重新访问(或后),与注册表访问交易的代码,并试图找出是什么原因导致的问题

+0

称为“RegEdit”的应用程序受到限制,无法由非管理员使用。这是由团体政策控制的,我不希望让他们作出例外。如果有一种方法可以启动“运行身份”对话框(此选项已从上下文菜单中删除),那么我觉得我的所有问题都可以解决。 – 2011-05-19 14:21:57

相关问题