web-dev-qa-db-ja.com

ASP.NET MVC 5 Web.config:「FormsAuthenticationModule」または「FormsAuthentication」

わかりましたので、これは大したことではありませんが、それは私を悩ませていると私はそれを手放すことはできません。

そのため、.NET 4.5.1およびOWIN認証でMVC 5.1を使用しています。したがって、新しいMVC 5プロジェクトを作成すると、OWINミドルウェアを使用する際にフォーム認証HTTPモジュールが不要になるため、Web.configに以下が自動的に追加され、フォーム認証httpモジュールが削除されます。

<system.webServer>
    <modules>
        <remove name="FormsAuthenticationModule" />
    </modules>
</system.webServer>

モジュールを削除しているので、それは以前に追加されたことを意味するので、C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\web.configにこのhttpモジュールを登録するエントリは次のとおりです。

<httpModules>
    <add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" />
</httpModules>

そして、IIS 8.5の場合のC:\Windows\System32\inetsrv\config\applicationHost.configのエントリは、アプリケーションにモジュールを使用するよう指示します。

<system.webServer>
    <modules>
        <add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" preCondition="managedHandler" />
    </modules>
</system.webServer>

したがって、アプリケーションレベルで私のWeb構成に自動的に追加されるものには、「FormsAuthenticationModule」という名前属性がありますが、2つのサーバーレベル/asp.netレベル構成ファイルのエントリは、名前属性「FormsAuthentication」を使用します。ここで何が起こっているのでしょうか? name属性が一致しないため、モジュールは削除されないようです。これは単なるタイプミスだと思いますが、オンラインで検索した後、誰もがアプリケーションweb.configで「FormsAuthenticationModule」を使用しているようです。これは、asp.net/iisの新しいバージョンの最近の変更でしたか、それとも何か不足していますか?

43
wired_in

あなたは正しいです-それはテンプレートのタイプミスです。

27
Brock Allen

この「タイプミス」の主な副作用は、owinのloginpathが無視され、認証されたページへの呼び出しが/login.aspxになるとFormsAuthenticationが残ることです。

7
Aaron Sherman