[英]Getting HTTP 401.2 Unauthorized when porting old Web Forms to OWIN
[英]Access denied (401.2) when loading default documents using Owin with Identity 2.0
我們最近將一個使用 Forms 身份驗證的 Framework 4.8 WebForms 項目轉換為使用 Identity 2.0 身份驗證,現在我們無法在不允許匿名訪問的情況下訪問默認文檔或圖像。
使用 Identity 進行身份驗證后,如果您瀏覽到諸如 http://mysite/dashboard/default.aspx 之類的文件夾,它就可以正常工作。 但是,如果默認頁面不在 http://mysite/dashboard/ 中的路徑中,它會返回 401.2,就好像 IIS 需要權限才能為頁面提供服務:
*訪問被拒絕。 說明:訪問服務此請求所需的資源時出錯。 服務器可能未配置為訪問所請求的 URL。
錯誤消息 401.2:未經授權:由於服務器配置導致登錄失敗。 根據您提供的憑據和在 Web 服務器上啟用的身份驗證方法,驗證您是否有權查看此目錄或頁面。 請聯系 Web 服務器管理員以獲得更多幫助。*
我們有<authentication mode="None">
我知道這對這種情況是正確的。 IIS 配置為使用默認文檔,就像我們使用 Forms 身份驗證時一樣。
我們還使用System.Web.Security.UrlAuthorizationModule
拒絕未經身份驗證的用戶:
<authorization>
<deny users="?" />
</authorization>
如果我們允許對文件夾進行匿名訪問,它確實有效,但我們不允許對這些位置進行匿名訪問。
<location path="Dashboard">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
那么,您如何配置 IIS 以在沒有“允許匿名”的情況下訪問默認文檔,以便它像在 Forms 身份驗證下一樣工作。
謝謝!!!
嘗試將其添加到System.Webserver
部分
<modules>
<remove name="FormsAuthentication"/>
<add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" />
</modules>
關鍵似乎是從 FormsAuthentication 模塊中刪除 managedHandler Precondition。 據我了解,這只是為了優化 static 內容的服務。
發現將<modules runAllManagedModulesForAllRequests="true">
添加到web.config
解決問題。 不太確定為什么在這一點上。 我確實注意到對 static 文件的請求不包括在刪除 Forms 身份驗證之前有效的用戶身份。 添加后,用戶身份開始顯示在請求中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.