2011-05-19 33 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

相關問題