2012-01-22 41 views
2

我正在嘗試使用IIS 7管理API,但遇到安全問題。我的應用程序是在.NET 4上運行的常規ASP.NET站點(集成管道)。該機器是Windows 7 x64(應用程序池是默認的,在ApplicationPoolIdentity下運行,x64)。該網站使用以下設置:使用Microsoft.Web.Administration所需的權限

<identity impersonate="true" /> 
    <authentication mode="Windows" /> 
    <customErrors mode="Off" /> 
    <authorization> 
     <deny users="?" /> 
    </authorization> 

我的網站試圖通過IIS管理API(本地主機)來讀取其他網站的詳細信息。我以本地管理員的身份登錄。在IE瀏覽器我試圖打開我的網頁,但得到這個:

Site 'mysite' at 'myhost' is unknown.System.UnauthorizedAccessException: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)) 
at Microsoft.Web.Administration.Interop.IAppHostProperty.get_Value() 
at Microsoft.Web.Administration.ConfigurationElement.GetPropertyValue(IAppHostProperty property) 
at Microsoft.Web.Administration.Site.get_State() 

我不明白爲什麼。我敢肯定代碼運行在我的帳戶的模擬上下文中(可以看到這是調試器正在觀看System.Threading.Thread.CurrentPrincipal)。我究竟做錯了什麼?

p.s.

UAC已開啓,但我相信這並不重要。 在C:\ Windows \ system32 \ inetsrv \ config文件夾中檢查NTFS權限 - 管理員的完全訪問權限。

回答

1

UAC確實是萬惡之源。打開時,模擬行爲被破壞。有些東西真的太複雜了:(

當啓用UAC並且當前安全環境被模擬時,主要報告他不是本地管理員組的成員,但他是,它與交互/非 - 交互會話。

0

嘗試將具有完全權限的web.config文件夾設置爲temp目錄。

<compilation tempDirectory="c:\temp" ... ></compilation> 
+0

試過,沒有工作:( – UserControl