authorization與URL授權


利用Web.config中的authorization標簽設置授權屬於URL授權。  

使用 URL 授權

通過 URL 授權,您可以顯式允許或拒絕某個用戶名或角色對特定目錄的訪問權限。為此,請在該目錄的配置文件中創建一個 authorization 節。若要啟用 URL 授權,請在配置文件的 authorization 節中的 allow 或 deny 元素中指定一個用戶或角色列表。為目錄建立的權限也會應用到其子目錄,除非子目錄中的配置文件重寫這些權限。

下面顯示了 authorization 節的語法:

<authorization>
<[allow|deny] users roles verbs />
</authorization>

allow 或 deny 元素是必需的。必須指定 users 或 roles 屬性。可以同時包含二者,但這不是必需的。verbs 屬性可選。一旦設置了allow或deny,必須帶上user或roles 二者其中之一。否則運行的時候就會出錯。

屬性

說明

users

標識此元素的目標身份(用戶帳戶)。

用問號 (?) 標識匿名用戶。可以用星號 (*) 指定所有經過身份驗證的用戶。

roles

為被允許或被拒絕訪問資源的當前請求標識一個角色(RolePrincipal 對象)。有關更多信息,請參見使用角色管理授權

verbs

定義操作所要應用到的 HTTP 謂詞,如 GET、HEAD 和 POST。默認值為"*",它指定了所有謂詞。

   

上面若設置了user,若使用Forms認證,一單設置FormsAuthentication.SetAuthCookie生成Principal起,則開始進行授權;Windows認證估計從登錄時起。roles的需要結合另外一個標簽來試驗,若啟用了roleManager並通過Roles給當前的User設置角色,則可進行授權驗證。

allow和deny標簽可以有多個,可以使用逗號分隔的列表為 users 和 roles 屬性指定多個實體。請注意,如果指定一個域帳戶名,該名稱必須包含域名和用戶名 (contoso\Jane)。

規則應用如下:

  • 應用程序級別的配置文件中包含的規則優先級高於繼承的規則。系統通過構造一個 URL 的所有規則的合並列表,其中最近(層次結構中距離最近)的規則位於列表頭,來確定哪條規則優先。
  • 給定應用程序的一組合並的規則,ASP.NET 從列表頭開始,檢查規則直至找到第一個匹配項為止。ASP.NET 的默認配置包含向所有用戶授權的 <allow users="*"> 元素。(默認情況下,最后應用該規則。)如果其他授權規則都不匹配,則允許該請求。如果找到匹配項並且它是deny 元素,則向該請求返回 401 HTTP 狀態代碼。如果 allow 元素匹配,則模塊允許進一步處理該請求。

還可以在配置文件中創建一個 location 元素以指定特定文件或目錄,location 元素中的設置將應用於這個文件或目錄。

   

授權決定了是否應授予某個標識對特定資源的訪問權限。在 ASP.NET 中,有兩種方式來授予對給定資源的訪問權限:

  • 文件授權   文件授權由 FileAuthorizationModule 執行。它檢查 .aspx 或 .asmx 處理程序文件的訪問控制列表 (ACL) 以確定用戶是否應該具有對文件的訪問權限。ACL 權限用於驗證用戶的 Windows 標識(如果已啟用 Windows 身份驗證)或 ASP.NET 進程的 Windows 標識。有關更多信息,請參見 ASP.NET 模擬
  • URL 授權   URL 授權由 UrlAuthorizationModule 執行,它將用戶和角色映射到 ASP.NET 應用程序中的 URL。這個模塊可用於有選擇地允許或拒絕特定用戶或角色對應用程序的任意部分(通常為目錄)的訪問權限。

   

來自 <https://msdn.microsoft.com/zh-cn/library/wce3kxhd(v=vs.100).aspx>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM