簡體   English   中英

使用帶有 Identity 2.0 的 Owin 加載默認文檔時訪問被拒絕 (401.2)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM