authorization與URL受權

利用Web.config中的authorization標籤設置受權屬於URL受權。  web

使用 URL 受權url

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

下面顯示了 authorization 節的語法: code

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

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

屬性對象

說明blog

users繼承

標識此元素的目標身份(用戶賬戶)。 進程

用問號 (?) 標識匿名用戶。能夠用星號 (*) 指定全部通過身份驗證的用戶。ip

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>

相關文章
相關標籤/搜索