簡體   English   中英

如何允許匿名用戶訪問虛擬目錄

[英]How to allow anonymous user access to virtual directory

我目前阻止匿名用戶訪問我的根應用程序。

/web.config

  <system.web>
    <authorization>
      <deny users="?" />
    </authorization>
  </system.web>

但我允許匿名訪問公共資源(圖像,CSS等):

  <location path="Images">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>

現在,我想添加一個匿名用戶可以訪問的虛擬目錄。 我添加了一個基於Images路徑的配置,但每當我嘗試訪問該位置時,我都會被重定向到登錄頁面,並將ReturnURL設置為虛擬目錄。

  <location path="virtualDirectory">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>

另外,我試圖在我的虛擬目錄的web.config中指定全局授權但是得到一個錯誤,說我只能有一次

/virtualDirectory/web.config:

  <system.web>
    <authorization>
      <allow users="*" />
    </authorization>
  </system.web>

當我的根應用程序阻止匿名訪問時,如何允許匿名訪問虛擬目錄?

在你的全局web.config中封裝了

<system.web>
  <authorization>
    <deny users="?" />
  </authorization>
</system.web>

<location path="." inheritInChildApplications="false">
  <system.web>
    <authorization>
      <deny users="?" />
    </authorization>
  </system.web>   
</location>

這意味着 - 授權僅在root應用程序中實施,而不是針對子應用程序。

一些筆記。

  1. 星號(*)代表所有身份。

  2. 問號(?)代表匿名身份。

  3. 因此,理想情況下,您無需在全局web.config中設置允許對virtualDirectory的匿名用戶進行身份驗證。

  4. 轉到IIS,在虛擬目錄下>選擇身份驗證>啟用匿名身份驗證。

參考

ASP.NET授權

如何:在IIS中創建和配置虛擬目錄

在您的全局web.config中刪除

<location path="virtualDirectory">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
 </location>

然后去IIS經理和

  1. 在“虛擬目錄主頁”區域中,雙擊“身份驗證”

  2. 右鍵單擊“匿名身​​份驗證”,然后單擊“啟用”

您的授權規則看起來不錯。 您收到的最后一個錯誤是因為每個文件夾/文件/路徑只能有一次授權部分(實際上是任何部分)。 因此要么全局,要么在<location path="virtualDirectory">或僅在虛擬目錄的web.config中。 在兩個地方都有它會給你一個錯誤。 什么是虛擬目錄中設置的身份驗證。

確保啟用匿名以及允許授權規則。 (IIS管理器 - >站點 - >您的特定站點 - >虛擬目錄 - >在中央窗格中驗證)

此外,在IIS GUI中還有ASP.NET授權規則(您當前使用的規則)和IIS授權規則。 確保沒有任何拒絕IIS授權規則。

在此輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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