2012-01-22 11 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のフォルダに設定してみてください。

+0

試してみましたが、動作しませんでした。 – UserControl