Nekiültünk, hogy a céges website-ot továbbfejlesztésének, ahol elsõdleges szempont a felhasználók azonosítása. Az elmúlt fél évben ezt a témát tudatosan jegeltük, mert vártuk az IIS 7.0-t és a beépített ASP.NET User kezelõ felületet. Örömmel jelenthetem, hogy e szolgáltatás megérkezett és a héten hivatalosan itthon is debutált IIS 7.0-ben elérhetõ (zárójelesen jegyzem meg, hogy a CD-n kiadott termékben az FTP szolgáltatást még az IIS 6.0FTP motorja végzi, de a Microsoft Download Center-rõl letölthetõ az IIS 7.0 FTP modulja).

Nekültem tehát, hogy az eddig mostohaként kezelt – értsd nem használt – felhasználó kezelést megismerjem és használatba vegyem. Elsõ lépésben áttekintettem mit is nyújt számomra az IIS 7 majd átnéztem milyen kontrolok és lehetõségek vannak az ASP.NET 3.5 felületen – a Visual Studio 2008-ból elérhetõen – a kezemben. A terület elsõre sem rövid – hát még ha az ember bele is mélyed – de azért megpróbálom a benyomásaimat érthetõ formára hozva felvésni.

Nézzük mire is jutottam.

IIS 7.0 ASP.NET szolgáltatásai

Elsõ lépésben elõvettem teszt virtuális környezetemet és feltettem rá az IIS 7-t (meg persze elõtte a Windows 2008 Standard Servert :)). Kellemes meglepetés fogadott üzemeltetõi szemmel nézve a dolgokat, mert elérhetõ és kényelmesen kezelhetõ minden olyan szolgáltatás amit a fejlesztõi felületen ASP.NET Configuration site-n keresztül lehet használni (sõt még további “apróságok” is).

IIS ASP.NET szolgáltatásai

Amint az a fenti képeken is jól látható, az IIS 7 gyárilag tartalmazza már a Role, az User és a többi komponens adminisztrációjához szükséges felületeket. Ezen felül valóban lehet adminisztrálni is ezeket, azaz már egy üzemi szolgáltatásnak nem feltétele, hogy az ember saját maga megírja az adminisztrációhoz szükséges alapvetõ felületeket. Gondoljunk csak arra, hogy éles üzemben bármikor szólhatnak, hogy nézzünk utána ennek vagy annak a felhasználónak létezik-e, és az ember nem szeret ilyenkor SQL táblákban és query-kben kutakodni. Természetesen fontos az is – amennyiben másképp nem rendelkezünk – a rendszer titkosítva tárolja a felhasználói azonosítás során kapott jelszavakat (hány rendszer bukik meg ezen apró de lényeges kérdésen a SOX auditok kapcsán).

Melyek a legfontosabb beállítási lehetõségek – szerintem -, vegyük Őket sorba:

  • Alkalmazás beállítások
  • Machine Key beállítások
  • Felhasználókezelés és beállításai
  • Role-ok beállítása
  • Connection String-ek kezelése
  • SMTP beállítások
  • Session State kezelés beállításai

Van még egy fontos beállításokat tartalmazó terület, ez az Application Pool kezelését szabályzó rész.

IIS 7 ASP.NET Alkalmazás beállítások

Az alkalmazás paramétereit számos helyen és módon szabályozhatjuk az IIS 7-ben. Ezeket jellemzõen egy rendszerben csak egyszer állítunk be, illetve nem mindennap módosítjuk, hisz ezek nagyban befolyásolják rendszerünk mûködését.

Elsõ legfontosabb terület, hogy az alkalmazás fix paramétereit tudjuk könnyen kezelni (Application Settings). Az itt kezelt paramétereket a webes alkalmazásunk mint állandókat alkalmazza, de nekünk lehetõségünk van arra, hogy az egyes paramétereket minden esetben külön-külön szabályozhassuk.

ASP.NET Application Settings

Az alkalmazás mûködésének következõ beállítási felülete, az ASP.NET kódlapkezeléseket szabályzó oldala, az ASP.NET Globalization oldal. Ezen az oldalon egyenként adhatjuk meg, hogy a rendser mely fájlokat milyen kódlap szerint kezeljen alapértelmezésben (nem semmi! Ezzel régebben azért volt nyûg).

ASP.NET Globalization

Ezután jön egy fontos beállítási lehetõség, a Machine Key beállítások halmaza. A képet nézve szerintem nem kell sok magyarázat ahhoz miket is lehet itt szabályozni. Fontos és lényeges, hogy itt kell beállítani milyen módon kezeljük a hozzánk érkezõ bizalmas adatokat, és miképp tároljuk azokat.

ASP.NET Machine Key

Ezek után már csak egy rész maradt, itt a folyamatszálak kezelését lehet szabályozni.

ASP.NET Session State

Kapcsolati stringek

Az egyes alkalmazások mûködése során jelentõs fontosságú, hogy mikor merre és milyen paraméterekkel kapcsolódunk az alkalmazás által használt adatbázisokhoz. A rendszer alapértelmezésben alkalmazott LocalSqlServer kapcsolata mellett a számunkra illetve az alkalmazásunk számára szükséges mennyiségû kapcsolati stringet vehetünk fel.

ASP.NET Connection Strings

Érdekesség, hogy a LocalSqlServer kapcsolat mûködése alapértelmezésben az adatbázishoz csak a futásidõben kapcsolódó adatbázis szolgálja ki, amely alapesetben az ASP.NET DataDirectory-ban (/app_data) található aspnetdb.mdf fájl. Amennyiben a rendszerünk kiszolgálását nem MS SQL 2005 Express szolgálja ki, úgy ezen a beállításon – a számunkra szükséges módon – de változtatnunk kell!

SMTP E-mail beállítások

Amennyiben az alkalmazásunk bármilyen oknál fogva levelezni kíván – akár a felhasználókezelés miatt, akár általunk programozottan – akkor szükségünk van az E-mail szolgáltatások elérésének beállítására. Ezt az ASP.NET E-mail beállítások-nál tehetjük meg.

ASP.NET SMTP E-mail

A beállítások értelmezése nem bonyolult, egy fontos dolog van, amennyiben az SMTP szerverhez a Use Localhost kapcsolót kapcsoljuk be, akkor szükségünk van a szerverünkre telepített – és megfelelõen konfigurált – SMTP szolgáltatásra. Ez alapértelmezésben megtalálható az IIS szolgáltatások között, de természetesen telepíthetünk a szerverre Exchange szervert is. 🙂

Role-k

A role-k az alkalmazásunk felhasználóinak logikai csoportosítását teszi lehetõvé, akár secuirty group-nak is kezelhetjük. Adminisztrációja roppant egyszerû, hisz csak egy nevet kell felvenni, vagy módosítani. Figyeljünk azomban arra, hogy az alkalmazás programozása során a neveket fixen kell “beégetni”, azaz ne nagyon piszkáljuk el a neveket, ha az alkalmazás forráskódja nincs a kezünkben!

ASP.NET Role

Felhasználók kezelése

Végül eljutottunk az egész másik fontos részéhez a felhasználók kezelésének adminisztrációjához. A rendszer alapértelmezésben az ASP.NET felhasználókezelésében csak a gyári paramétereket kezeli, de ezeket – amennyiben szabályosan konfiguráljuk a rendszerünket a web.config fájlban – mi magunk is szabályozhatjuk. Az így megadott konfiguráció a kezelõfelületek is mûködését is szabályozzák!

ASP.NET User List

Persze nem kis dolog, hogy listázni lehet a felhasználóinkat, de ugyanilyen fontos az is, hogy mi magunk is felvehetünk felhasználókat. Ezen felhasználókat az Add .NET User wizard-on keresztük vehetjük fel.

ASP.NET Add User

A felvehetõ paraméterek ebben az esetben csak a gyári adatok – míg a webes felület felvételi részén további paramétereket is “kikényszeríthetünk”, felvehetünk. Lényeges, hogy a Wizard is figyeli a web.config fájlban megadott jelszó szabályokat. Alapértelmezésben – ha másképp nem szabályozzuk – a rendszer minimális jelszóhossza 7 karakter, és ebbõl legalább egy karakter nem alfanumerikus jel kell legyen.
Második lépésben a meg kell adnunk, hogy felhasználónk milyen role-k birtokosa. Ezt egyszerûen az érintett role-k bekattintásával végezhetjük el.

ASP.NET USer Wizard 2

Ezt követõen a Finish gomb megnyomására a rendszer elvégzi a szükséges ellenõrzéseket, majd – ha semmilyen gondot nem érzékel – akkor létrehozza a szükséges felhasználót. A felhasználónk automatikusan aktív állapotú lesz, és ezt követõen akár azonnal bejelentkezhet és használhatja alkalmazásunkat.

ASP.NET 3.x felhasználókezelési szolgáltatásait – az olvashatóság és kezelhetõség végett – egy következõ bejegyzésben tárgyalom.