2011-01-12 18 views
1

WebアプリケーションをAppPool User(Domain \ UserForApp)として完全に実行しようとしています。IISの設定を正しく設定していて、すべてが正常に動作し、 "System.Security.Principal.WindowsIdentity.GetCurrent()。Name"正しい "Domain \ UserForApp"を返します。しかしIIS 7で偽装を使用しないようにするにはどうすればよいですか?

、私が必要と裸の骨に私のWebアプリケーション・ディレクトリの権限を制限しようとした:

  • SYSTEM(フルアクセス)
  • ミー(フルアクセス)
  • Admininstrators(フルアクセス私はもはや静的ファイルを読み込むことができなかった

  • UserForApp(読み取り)。 、それが正しいよう

    ACCESS DENIED: 
    Desired Access:  Generic Read 
    Disposition:  Open 
    Options:   Sequential Access, No Buffering 
    Attributes:   RE 
    ShareMode:   Read, Write, Delete 
    AllocationSize:  n/a 
    Impersonating:  NT AUTHORITY\IUSR 
    

    そして、あなたは上記のIUSRから見るようには権限がありません。だから私は理由を見つけるためにプロセスモニタをダウンロードし、それが静的なファイルにアクセスしようとするたびに、私は次のエラーを取得しますとにかく偽装しようとしている理由を理解できていない。私のweb.configファイルで私が持っている:

    <location path="" overrideMode="Deny"> 
        <system.web> 
         <identity impersonate="false" /> 
        </system.web> 
    </location> 
    

    だけで誰も偽装をオンにしていないが、それは効果がなかったことを確実にするために。

    クラシックモードとパイプラインモードの両方では機能しませんが、エラーは少し異なります。従来の画像では、HTTP Error 401.3 - Unauthorizedページが表示され、Pipelinedを使用するとログインサイトにリダイレクトされます。あなたがアプリケーションプールのIDとして実行するようにサイトをwan't場合

  • 答えて

    1

    その後、次のものが必要です。

    <location path="my_site"> 
        <system.webServer> 
         <security> 
          <authentication> 
           <anonymousAuthentication userName="" /> 
          </authentication> 
         </security> 
        </system.webServer> 
    </location> 
    

    あなたが実行して、applicationHost.configファイル(おそらく最高の場所)でこれを設定することができます。

    APPCMD.exe set config "my_site" -section:system.webServer/security/authentication/anonymousAuthentication /username:"" /commit:apphost 
    
    +0

    これはそれでした。私は結局これを見つけたが、それは単なる回避策だと思った。私にそれを確認していただきありがとうございます。 –

    関連する問題