2012-12-03 63 views
1

朋友,我工作的一個項目叫computer scanner,但是當我爲了掃描我的硬盤驅動器上運行我的代碼,它給了我一個異常「Access Denied to System Volume Information Folders」另外還有一些其他的文件夾太它具有相同的行爲,我無法訪問它們,以及從互聯網上學習這個異常之後,我得知道在添加「Manifest File」並將其更改爲「Require Administrator」到程序後,將作爲管理員運行,但不幸沒有這樣的事情發生。
我使用一些代碼,這將讓我跑我的代碼作爲管理員,但仍表現出我相同的異常。 請我迫切需要幫助在此先感謝:)如何管理員權限給予代碼在C#

WindowsIdentity CurrentIdentity = WindowsIdentity.GetCurrent(); 
       WindowsPrincipal CurrentPrincipal = new  WindowsPrincipal(CurrentIdentity); 

       if (CurrentPrincipal.IsInRole(WindowsBuiltInRole.Administrator)) 
{ 
//Scanning Code will Execute 
} 

回答

1

你不能給自己的管理員特權,代碼在所有。那將是rediculus。

你必須運行Visual Studio作爲管理員RightClick->run as admin

,並最終應用程序必須運行的管理也是如此。爲了迫使用戶爲管理員合作

How do I force my .NET application to run as administrator?

您可以使用此。

這不會使應用程序管理員合作,將推動用戶該應用要求以管理員運行

+0

你好,很高興見到烏爾回覆,順便其中U給我的解決方案,我試了一下很久以前,但仍是同樣的問題。我必須讓我的程序訪問任何方式,因爲項目本身稱爲「計算機掃描儀」,因此它必須掃描計算機中的每個文件。你可以向我展示任何其他方式以獲得訪問權限,以便我可以運行我的掃描代碼。 –

+0

@NikhilHKuren不,你不能它的潛能! 沒有prviliged用戶不能獲得priviliged接入權。 – Nahum

+0

作爲管理員,如果我沒有訪問這些文件夾,那麼它對我來說非常震撼。我有一個問題是,如何防病毒公司有權訪問這些文件夾,因爲他們沒有擁有該計算機,他們仍然可以訪問。這可能性如何? –