web-dev-qa-db-ja.com

IIS Expressはプロジェクトの匿名認証を自動的に無効にしますが、なぜですか?

ASP.NET MVCプロジェクトをCassini WebサーバーからIIS Express)に切り替えると、これがapplicationhost.configファイルに追加されます。

<location path="MyProject">
    <system.webServer>
        <security>
            <authentication>
                <anonymousAuthentication enabled="false" />
                <windowsAuthentication enabled="false" />
            </authentication>
        </security>
    </system.webServer>
</location>

サイトが401.2-Unauthorizedで読み込まれず、Web.configレベルで修正できません-セクションが親レベル(HTTP 500.19)でロックされていると文句を言います。

applicationhost.configファイルを修正することで修正できますが、Vanilla ASP.NET MVCプロジェクトにそのようなセクションが追加されていない場合に必要な理由がわかりません。何が悪いのでしょうか?

VS 11ベータ版を使用していますが、2010 SP1でこの奇妙な動作も確認しました。 IIS Expressはバージョン7.5だと言います。

34
Borek Bernard

何らかの理由で、これが私のcsprojファイルにあったためです。

<IISExpressAnonymousAuthentication>disabled</IISExpressAnonymousAuthentication>

enabledに設定すると、問題が修正されます(Visual Studioからも実行でき、プロジェクト、F4を選択し、プロパティグリッドで匿名認証Enabledに設定します。 )。

74
Borek Bernard

プロジェクトを右クリックし、F4を押す前にiis expressを使用を選択してください。

5
Raju S Nair

時々、私は同じ困難に直面しましたが、ここで見たものとは少し違いました。私のラップトップには、VS 08とVS 13の両方と、SQL Server 2008 R2と11G XEがあります。 R2に接続するWebサイトが問題になることはありませんでしたが、asp.netでOracleメンバーシップを使用してWebサイトを構築しようとすると、ページが開きますが、ロールのあるフォルダーの下のページが開かず、アクセス拒否エラーが表示されました。フォルダーの内部には適切なweb.configがあり、ユーザーは同じ役割で作成されましたが、それでも同じエラーがスローされていました。最後に、認証メカニズムを実行する必要があることに気付き、web.configのsystem.webに次のコードを追加しました。

<authentication mode="Forms">
<forms loginUrl="Login.aspx" protection="All" slidingExpiration="true"
timeout="90" />
</authentication>
<authorization>
<deny users="?" />
</authorization>
<identity impersonate="false"/>
<trace
enabled="false"
requestLimit="10"
pageOutput="false"
traceMode="SortByTime"
localOnly="true"
/>

そして、認証されたユーザーが指定されたフォルダーにログインできるようになりました!これが私のような問題に直面した人の助けになることを願っています。

0
user3615318