淺析ASP.NET URL授權(quán)
ASP.NET 授權(quán)
可以使用授權(quán)來(lái)確定是否一個(gè)通過(guò)驗(yàn)證的用戶(hù)已經(jīng)訪(fǎng)問(wèn)了某個(gè)特定的資源。這個(gè)授權(quán)過(guò)程可以讓我們限制用戶(hù)的訪(fǎng)問(wèn)權(quán)限——通過(guò)賦予或者取消一個(gè)用戶(hù)所能擁有的特定權(quán)限。ASP.NET提供了兩種授權(quán)方式:文件授權(quán)和URL授權(quán)。
(1)ASP.NET 文件授權(quán)。當(dāng)我們使用windows認(rèn)證的時(shí)候,此方式自動(dòng)生效,它基于IIS的認(rèn)證。當(dāng)用戶(hù)嘗試訪(fǎng)問(wèn)某個(gè)ASP.NET應(yīng)用的受保護(hù)資源的時(shí)候,IIS首先對(duì)其進(jìn)行驗(yàn)證,之后,ASP.NET檢查NTFS文件權(quán)限或者ACL來(lái)確定此用戶(hù)是否有權(quán)限訪(fǎng)問(wèn)資源。
(2)ASP.NET URL授權(quán)。當(dāng)不使用windows認(rèn)證的時(shí)候,可以使用ASP.NET URL授權(quán)。當(dāng)用戶(hù)嘗試訪(fǎng)問(wèn)某個(gè)資源時(shí),ASP.NET URL授權(quán)機(jī)制根據(jù)ASP.NET驗(yàn)證過(guò)程分配給application的角色和application的身份來(lái)同意或者拒絕請(qǐng)求者對(duì)資源的訪(fǎng)問(wèn)。使用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>
 
拒絕匿名用戶(hù)訪(fǎng)問(wèn)(?代表匿名用戶(hù),*代表任何用戶(hù)):
- <authorization>
 - <deny users="?"/>
 - </authorization>
 
只有擁有Domain\Administrators角色的用戶(hù)才可訪(fǎng)問(wèn):
- <authorization>
 - <allow roles="Domain\Administrators"/>
 - <deny users="*"/>
 - </authorization>
 
注意配置節(jié)中的內(nèi)容是有順序關(guān)系的,ASP.NET查找<authorization>的子項(xiàng),直到找到了匹配當(dāng)前用戶(hù)的規(guī)則(rule)。
任何人都不能訪(fǎng)問(wèn):
- <authorization>
 - <deny users="*"/>
 - <allow roles="Domain\Administrators"/>
 - <allow users="Domain\user1, Domain\user2"/>
 - </authorization>
 
使用Verb屬性可以限制HTTP的動(dòng)作(Action):
- <allow VERB="POST" users="user1, user2" />
 - <deny VERB="POST" users="*" />
 - <allow VERB="GET" users="*" />
 
以上介紹ASP.NET URL授權(quán)
【編輯推薦】















 
 
 
 
 
 
 