【问题标题】:.Net Console App keeps crashing.Net 控制台应用程序不断崩溃
【发布时间】:2011-05-19 13:41:37
【问题描述】:

我添加了带有元素的清单文件

<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(对象需求, StackCrawlMark& stackMark, Boolean isPermSet) at System.Security.CodeAccessPermission.Demand() 在 Microsoft.Win32.RegistryKey.CheckSubKeyReadPermission(字符串 子键名)在 Microsoft.Win32.RegistryKey.CheckOpenSubKeyPermission(字符串 subkeyName, 布尔值 subKeyWritable) 在 Microsoft.Win32.RegistryKey.OpenSubKey(字符串名称,布尔可写) 在 LotusTrustedSites.RegistryKeyExtensionMethods.GetOrCreateSubKey(RegistryKe y registryKey, String parentKeyLocation, String key, Boolean writable) 在 LotusTrustedSites.ReportDownloader.Main(String[] args) 动作 失败的是:需求第一个失败的权限的类型 是:System.Security.Permissions.RegistryPermission

失败的程序集或 AppDomain 是:MyApp,Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 导致 失败是:Microsoft.Win32.RegistryKey GetOrCreateSubKey(Microsoft.Win32.RegistryKey, 系统 m.String, System.String,布尔值)

【问题讨论】:

    标签: c# visual-studio-2008 visual-studio-2010 security manifest


    【解决方案1】:

    当然失败了。您告诉它需要管理员访问权限,而非管理员帐户无法提供该权限。您是否希望它以非管理员用户的管理员权限运行?如果可能的话,这将是 Windows 中的一个重大安全漏洞。

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

    【讨论】:

    • Windows 服务以管理员身份运行。有什么办法可以伪装成管理员吗?
    • @Cocoa Windows 服务并不总是以管理员身份运行。它们可以使用您指定的任何帐户运行。但至于如何伪装广告管理员,请再次阅读我的第二段。您还可以提供桌面快捷方式来启动计划任务。
    【解决方案2】:

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

    【讨论】:

    • 我将其保留为 requireAdministrator 然后我创建了一个执行 runas /user:DOMAIN\username NameOfApp.exe 的 VBScript
    【解决方案3】:

    据我所知,您正在尝试获取一些注册表权限。这就是它需要管理权限的原因。

    尝试重新访问(或发布)处理注册表访问的代码并尝试找出导致问题的原因

    【讨论】:

    • 名为“RegEdit”的应用程序受到限制,非管理员无法使用。这是由组策略控制的,我不希望他们破例。如果有办法启动运行方式对话框(此选项已从上下文菜单中删除),那么我觉得我的所有问题都会得到解决。
    猜你喜欢
    • 1970-01-01
    • 2017-03-26
    • 2017-08-02
    • 1970-01-01
    • 2017-07-28
    • 2013-04-28
    • 1970-01-01
    • 1970-01-01
    • 2017-04-09
    相关资源
    最近更新 更多