淺析ASP.NET URL授權
ASP.NET 授權
可以使用授權來確定是否一個通過驗證的用戶已經訪問了某個特定的資源。這個授權過程可以讓我們限制用戶的訪問權限——通過賦予或者取消一個用戶所能擁有的特定權限。ASP.NET提供了兩種授權方式:文件授權和URL授權。
(1)ASP.NET 文件授權。當我們使用windows認證的時候,此方式自動生效,它基于IIS的認證。當用戶嘗試訪問某個ASP.NET應用的受保護資源的時候,IIS首先對其進行驗證,之后,ASP.NET檢查NTFS文件權限或者ACL來確定此用戶是否有權限訪問資源。
(2)ASP.NET URL授權。當不使用windows認證的時候,可以使用ASP.NET URL授權。當用戶嘗試訪問某個資源時,ASP.NET URL授權機制根據ASP.NET驗證過程分配給application的角色和application的身份來同意或者拒絕請求者對資源的訪問。使用ASP.NET URL授權可以做如下幾件事情:
◆Deny or allow access to individual users or groups of users.
◆Deny or allow access to specific roles.
◆Restrict access based on the type of HTTP action attempted, such as Get or Post.
例子:
- <authorization>
- <allow users="Domain\user1, Domain\user2"/>
- <deny users="*"/>
- </authorization>
拒絕匿名用戶訪問(?代表匿名用戶,*代表任何用戶):
- <authorization>
- <deny users="?"/>
- </authorization>
只有擁有Domain\Administrators角色的用戶才可訪問:
- <authorization>
- <allow roles="Domain\Administrators"/>
- <deny users="*"/>
- </authorization>
注意配置節中的內容是有順序關系的,ASP.NET查找<authorization>的子項,直到找到了匹配當前用戶的規則(rule)。
任何人都不能訪問:
- <authorization>
- <deny users="*"/>
- <allow roles="Domain\Administrators"/>
- <allow users="Domain\user1, Domain\user2"/>
- </authorization>
使用Verb屬性可以限制HTTP的動作(Action):
- <allow VERB="POST" users="user1, user2" />
- <deny VERB="POST" users="*" />
- <allow VERB="GET" users="*" />
以上介紹ASP.NET URL授權
【編輯推薦】