Asp.net

ASP.NET MVC 5 Web.config:“FormsAuthenticationModule”或“FormsAuthentication”

  • February 8, 2014

好的,所以這沒什麼大不了的,但它困擾著我,我不能放手。

所以我將 MVC 5.1 與 .NET 4.5.1 和 OWIN 身份驗證一起使用。因此,當您創建一個新的 MVC 5 項目時,以下內容會自動添加到 Web.config 以擺脫表單身份驗證 http 模組,因為使用 OWIN 中間件時不再需要它:

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

現在,由於我們正在刪除該模組,這意味著它是以前添加的,所以這裡是註冊此 http 模組的條目C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\web.config

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

這是C:\Windows\System32\inetsrv\config\applicationHost.configIIS 8.5 中的條目,它告訴我的應用程序使用該模組:

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

因此,在應用程序級別自動添加到我的 Web 配置的內容具有“FormsAuthenticationModule”的名稱屬性,而兩個伺服器級別/asp.net 級別的配置文件中的條目使用名稱屬性“FormsAuthentication”。那麼這裡發生了什麼?在我看來,模組不會被刪除,因為 name 屬性不匹配。我只是認為這是一個錯字,但在網上搜尋後,每個人似乎都在應用程序 web.config 中使用“FormsAuthenticationModule”。這是最新版本的 asp.net / iis 的最新變化還是我遺漏了什麼?

你是對的 - 這是模板中的一個錯字。

引用自:https://stackoverflow.com/questions/21652808