Az ASP.NET-es erőforrások (például aspx oldalak) a kezdetek óta védhetőek web.config-ban elhelyezett deklaratív bejegyzésekkel. Az IIS7 megjelenése óta az ilyen jellegű deklaratív védelem minden webes erőforrásnak (például PNG állományoknak) is alapértelmezetten kijár.
Az ilyen módon kiosztott webes jogok általában három nagy minta szerint szerveződnek:
- Csak egy adott felhasználó, vagy egy szerepkör tagjai által elérhető erőforrás (tipikusan admin oldalak)
- Minden bejelentkezett felhasználó számára elérhető oldalak (csak regisztrált felhasználóknak szánt tartalmak)
- Mindenki számára elérhető oldalak
Miután ezek elfelejthető, de ismétlődő monoton minták, ezért érdemes lehet őket összegyűjteni, és a jövőben csak másolni. Méghozzá abba a web.config-ba érdemes őket másolni, ahol a védendő erőforrásaink is vannak. Admin oldalak esetében például az 'admin' mappába - a beállított hozzáférési szint így az egész mappa összes állományára érvényes lesz.
Csak egy felhasználó számára elérhető tartalom (admin felhasználó)
<system.web>
<authorization>
<allow users="admin" />
<deny users="*"/>
</authorization>
</system.web>
Csak egy szerepkör tagjai számára elérhető tartalom (admin szerepkör)
<system.web>
<authorization>
<allow roles="admin" />
<deny users="*"/>
</authorization>
</system.web>
Csak bejelentkezett felhasználóknak elérhető tartalom
<system.web>
<authorization>
<deny users="?" />
<allow users="*" />
</authorization>
</system.web>
Mindenki számára elérhető tartalom
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
A fenti minták természetesen nem csak egy könyvtár tartalmát, hanem egyedi erőforrásokat is védhetnek, ha használjuk a web.config-ban a location taget...