淺析ASP.NET URL授權(quán)
ASP.NET 授權(quán)
可以使用授權(quán)來確定是否一個通過驗(yàn)證的用戶已經(jīng)訪問了某個特定的資源。這個授權(quán)過程可以讓我們限制用戶的訪問權(quán)限——通過賦予或者取消一個用戶所能擁有的特定權(quán)限。ASP.NET提供了兩種授權(quán)方式:文件授權(quán)和URL授權(quán)。
(1)ASP.NET 文件授權(quán)。當(dāng)我們使用windows認(rèn)證的時候,此方式自動生效,它基于IIS的認(rèn)證。當(dāng)用戶嘗試訪問某個ASP.NET應(yīng)用的受保護(hù)資源的時候,IIS首先對其進(jìn)行驗(yàn)證,之后,ASP.NET檢查NTFS文件權(quán)限或者ACL來確定此用戶是否有權(quán)限訪問資源。
(2)ASP.NET URL授權(quán)。當(dāng)不使用windows認(rèn)證的時候,可以使用ASP.NET URL授權(quán)。當(dāng)用戶嘗試訪問某個資源時,ASP.NET URL授權(quán)機(jī)制根據(jù)ASP.NET驗(yàn)證過程分配給application的角色和application的身份來同意或者拒絕請求者對資源的訪問。使用ASP.NET URL授權(quán)可以做如下幾件事情:
◆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>
注意配置節(jié)中的內(nèi)容是有順序關(guān)系的,ASP.NET查找<authorization>的子項(xiàng),直到找到了匹配當(dāng)前用戶的規(guī)則(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授權(quán)
【編輯推薦】