AspNet.sk     Diskusné fóra     Vitajte v QuickStarts     ASP.NET     Silverlight     Ako môžem...? (en)     Class prehliadač Príklady chcem v ...   
Menu
Skip Navigation Links.
Späť na ASP.NET príručku

ASP.NET QuickStart Príručka

API členstva a správy rolí

Členstvo (Membership)

Vlastnosť členstvo je vybudovaná v okolí dvoch centrálnych tried: Membership a MembershipUser. Trieda Membership poskytuje metódy pre tvorbu používateľov (reprezentovaných triedou MembershipUser), ako aj administratívne metódy pre správu používateľov. Používatelia, ktorí sú vytvorení prostredníctvom triedy Membership reprezentujú autentifikované identity pre aplikáciu typu ASP.NET.

Medzi bežné úlohy, ktoré realizujete prostredníctvom triedy Membership patria:
  • Vytvorenie nového MembershipUser
  • Validácia kombinácie meno-heslo, keď sa používateľ snaží prihlásiť. Môžete použiť Forms autentifikáciu na vydanie cookie indikujúceho používateľa,ktorý sa prihlásil na stránku
  • Získanie inštancie MembershipUser
  • Aktualizácia inštancie MembershipUser
  • Vyhľadávanie používateľov na základe rôznych vyhľadávacích kritérií
  • Získanie počtu prihlásených používateľov, ktorí sú aktuálne prihlásení
  • Vymazanie používateľov zo systému keď už nie sú potrební
Hneď ako ste získali inštanciu MembershipUser, bežné úlohy, ktoré sa vykonávané priamo triedou MembershipUser zahŕňajú:
  • Prístup k vlastnostiam triedy MembershipUser v aplikácii
  • Získanie hesla používateľa (len ak je vlastnosť Membership nastavená na povolenie získavanie hesla)
  • Zmena hesla používateľa, alebo znovunastavenie hesla používateľa
  • Zmena kontrolnej otázky a odpovede (ak bola vlastnosť Membership nastavená na vyžadovanie kontrolnej otázky pred ziskom alebo aktualizáciou hesla)
  • Odomknutie používateľa, ktorý bol zamknutý z dôvodu zadania zlého hesla, alebo zlej odpovede na kontrolnú otázku.

Manažér úloh

Centrálnou riadiacou triedou pre manažment úloh je trieda Roles. Trieda Roles poskytuje metódy tvorby rolí a prideľovania používateľom rolám. Tak isto poskytuje bežné administratívne metódy pre riadenie informácií o rolách.

Bežné úlohy, ktoré vykonávate s triedou Roles zahŕňajú:
  • Tvorbu novej roly
  • Vymazanie existujúcej roly
  • Priraďovanie používateľov rolám
  • Odstraňovanie používateľov z rolí
  • Zisťovanie, či je používateľ autorizovaný pre špecifickú rolu
  • Vyhľadávanie používateľov v špecifickej role, ako aj získavanie všetkých používateľov roly
  • Získanie informácie o role pre špecifického používateľa
Funkcia manažér rolí zahrňuje aj HttpModule. Uvedený modul je zodpovedný za získavanie informácií o priradení úloh používateľom a za ukladanie uvedenej informácie do triedy RolePrincipal, ktorá je prístupná cez HttpContext stránky. Existencia RolePrincipal na HttpContext vám umožní zabezpečiť stránky a adresáre použitím elementu <authorization>. V závislosti od úlohy uloženej v RolePrincipal, používateľ môže byť autorizovaný len na určité stránky a adresáre v rámci stránky.

Príklady

Nasledujúce príklady ukazujú ako použiť Membership API v aplikácii.

Tvorba používateľa

Príklad, ktorý nasleduje, ukazuje, ako vytvoriť nový objekt MembershipUser. Príklad zobrazuje použitie metódy Membership.CreateUser, ktorá vracia status kód ako výsledok operácie. Existujú aj preťaženia metódy , ktoré vracajú výnimky namiesto vrátenia status kódu. Vlastnosť Membership vyžaduje aby heslo bolo dlhé aspoň sedem písmen a musí obsahovať aspoň jeden nealfanumerický znak.

VB Creating a User Using Membership
Run Sample View Source

Prihlásenie a vlastnosti používateľa

Nasledujúci príklad ukazuje prihlásenie používateľa s použitím metódy Membership.ValidateUser. Zároveň ukazuje, ako použiť Forms Autentifikáciu spolu s vlastnosťou Membership pri prihlasovaní používateľa. Keď ste vytvorili konto s použitím predchádzajúceho príkladu, vložte údaje do prihlasovacej stránky. Hneď ako sa prihlásite, presmeruje Vás aplikácia na stránku, ktorá používa metódu Membership.GetUser na získanie inštancie MembershipUser zodpovedajúcej prihlásenému používateľovi. Všimnite si že stránka, ktorá zobrazuje údaje o používateľovi, bola umiestnená do adresára, ktorý povoľuje prístup len pre autentizovaných používateľov. Kliknite na odkaz logout v spodnej časti stránky, aby ste sa odhlásili.

VB Login and Viewing User Properties
Run Sample View Source

Aktualizácia používateľských vlastností

Znovu sa prihláste použitím prihlasovacích údajov vytvorených v predchádzajúcich príkladoch. Stránka zobrazuje vlastnosti používateľa v prvku DetailsView, ktorý je novinkou v ASP.NET 2.0. Prvok DetailsView komunikuje s prvkom dátového zdroja. V príklade je použitý prvok ObjectDataSource použitý na získanie obsahu z inštancie MembershipUser. Môžete kliknúť na odkaz Edit v spodnej časti stránky, aby ste prepli DetailsView do režimu editácie. Môžete zmeniť email aj komentár pre používateľa v objekte MembershipUser. Ak chcete uložiť nové hodnoty do databázy, kliknite na odkaz Update. V kóde si všimnite, že stránka implementuje udalosť ItemUpdating, ktorú vyvolá prvok ObjectDataSource. Implementácia udalostí je potrebná, pretože trieda MembershipUser nemá bezparametrický konštruktor, ktorý je vyžadovaný pri dvojsmernom dátovom viazaní na ObjectDataSource. Kliknite na odkaz logout v spodnej časti stránky, aby ste sa odhlásili.

VB Updating User Properties
Run Sample View Source

Blokovanie účtov

Vlastnosť membership automaticky sleduje počet nesprávnych zadaní hesla, ku ktorým došlo počas prihlasovania. Tak isto sleduje počet nesprávnych odpovedí na kontrolné otázky, ktoré sú používateľovi predkladané buď v čase zadávania hesla, alebo počas znovunastavenia hesla. Príklad ukazuje schopnosť automatického uzamknutia účtu prípadne jeho odomknutia ak je uzamknutý. Najprv vytvorte nový používateľský účet použitím Tvorba používateľa. Následne kliknite na tlačidlo nižšie a spustite príklad na blokovanie účtov. Prihlasovacia stránka zobrazuje počet nesprávnych pokusov o prihlásenie, ktoré budete musieť vykonať, aby ste vynútili uzamknutie konta. Na prihlasovacej stránke používajte konto, ktoré ste vytvorili ako prvé a úmyselne zadajte zlé heslo. Všimnite si, že ak zadáte nesprávne heslo práve toľkokrát, koľko bolo uvedené v spodnej časti stránky, môžete zadať aj správne heslo a ku svojmu kontu sa neprihlásite. Služba Membership automaticky uzamkla Vaše konto po stanovenom počte nesprávnych prihlasovacích pokusov. Aby ste svoje konto odomkli, prihláste sa pomocou druhého konta, ktoré ste vytvorili pred chvíľou. Stránka, ktorá je zobrazená je podobná predchádzajúcemu príkladu. Rozdiel spočíva v tom, že môžete zadať vlastné používateľské meno do prvku textbox v spodnej časti stránky. Zadajte používateľské meno uzamknutého účtu do uvedeného prvku, a stlačte klávesu enter. Prvok DetailsView sa aktualizuje a zobrazí informáciu pre používateľa. Všimnite si, že checkbox IsLockedOut pre notifikáciu uzamknutia je zaškrtnutý. Čas uzamknutia konta LastLockoutDate sa tiež aktualizuje a indikuje, kedy bol používateľ zablokovaný. Kliknite na tlačidlo unlock v spodnej časti stránky, aby ste odomkli aktuálne zobrazeného používateľa. Stlačenie tlačidla zavolá metódu UnlockUser na inštancii MembershipUser, čím sa konto odomkne. Po odomknutí konta je checkbox IsLockedOut vymazaný, a vlastnosť LastLockoutDate sa resetuje. Kliknite na odkaz lockout v spodnej časti stránky. Pokúste sa znovu prihlásiť s pôvodným kontom. Všimnite si, že znovu môžete úspešne do zóny prihlásených používateľov.

VB Account Lockout
Run Sample View Source

Vymazanie používateľa

Používateľa môžete vymazať použitím metódy Membership.DeleteUser. Nasledujúci príklad demonštruje vymazanie aktuálne prihláseného používateľa a následné odhlásenie použitím Forms autentifikácie.

VB Deleting A User
Run Sample View Source

Správa rolí

Nasledujúci príklad predstavuje použitie rolí s autentifikovaným používateľom vo funkcii Role Manager. Všetky stránky príkladu zakazujú prístup pre anonymných používateľov. Ak ste tak dosiaľ nespravili, vytvorte nového používateľa použitím príkladu tvorba používateľa. Štandardne nie je v ASP.NET funkcia Role Manager aktivovaná. Na rozdiel od štandardného správania, súbor web.config, použitý v nasledujúcich príkladoch, explicitne aktivuje vlastnosť Role Manager.

Pridanie a vymazanie rolí

Nasledujúci príklad demonštruje spôsob, ako vytvoriť a vymazať používateľské roly použitím metód Roles.CreateRole a Roles.DeleteRole. Po vytvorení novej roly, alebo po vymazaní existujúcej roly, stránka používa metódu Roles.GetAllRoles na zobrazenie aktuálne existujúcich rolí v systéme. Návratová hodnota z Roles.GetAllRoles môže byť jednoducho naviazaná na ktorýkoľvek ovládací prvok, ktorý podporuje dátové viazanie. Pre potreby posledného príkladu vytvoríte aspoň jednu rolu nazvanú "Administrators".

Všimnite si, že keď pridávate, alebo odoberáte roly, tak vám funkcia Role Manager nedovolí vytvoriť duplicitné roly. Ďalej stojí za zmienku, že Role Manager štandardne nedovoľuje vymazať roly, ku ktorým sú priradení používatelia.

VB Adding And Deleting Roles
Run Sample View Source

Pridanie a odobratie používateľa z roly

V nasledujúcom príklade použijete roly, ktoré ste predtým vytvorili. Príklad ukáže ako pridať používateľa do roly a ako odobrať používateľa z roly. Používateľ sa pridáva do roly použitím metódy Roles.AddUserToRole a odoberá použitím metódy Roles.RemoveUserFromRole. Predtým, ako je používateľ v skutočnosti pridaný do roly, vykonáva sa kontrola, ktorá zaisťuje, že používateľ nie je súčasťou roly, do ktorej ho chceme pridať. Súčasťou kontrolného mechanizmu je vyhodenie výnimky ak sa pokúsite pridať používateľa do roly viacnásobne. Ako pri predchádzajúcom príklade, informácia o role a členstvo v role je zobrazené použitím dátovo-viazaných používateľských prvkov. Zoznam rolí, do ktorých používateľ patrí môžete získať použitím metódy Roles.GetRolesForUser. Aby nasledujúci príklad fungoval, nezabudnite sa pridať do roly "Administrators".

VB Adding And Deleting Users To/From Roles
Run Sample View Source

Autorizácia prístupu k stránke použitím Role Manager

Súbor web.config pre nasledujúci príklad obsahuje element <authorization> obmedzujúci prístup len na členov roly "Administrators". Ak ste tak doposiaľ nespravili, vytvorte rolu "Administrators" a pridajte svoje konto do uvedenej roly. Hneď ako sa stanete členom roly "Administrators", budete schopní pristúpiť ku ukážkovej stránke. ASP.NET poskytuje modul HttpModule patriaci do Role Manager, ktorý automaticky pripája RolePrincipal ku HttpContext aktuálnej žiadosti. Ak ste členom roly "Administrators", máte počas vykonávania URL autorizácie povolený prístup. Pri autorizácii sa vykoná porovnanie IsInRole oproti RolePrincipal, ktoré vráti true, keď máte povolený prístup. Uvedomte si, že môžete referencovať objekt RolePrincipal na vašej stránke zavolaním vlastnosti Page.User, ktorej výsledok pretypujete na RolePrincipal.

VB Authorizing Access To a Page For A Role
Run Sample View Source

Kontrola autorizácie v zdrojovom kóde

Keďže funkcia Role Manager pripája RolePrincipal na HttpContext, môžete napísať zdrojový kód na vykonanie prístupových porovnaní oproti RolePrincipal. Vytvorte dve dodatočné roly nazvané "Regular Users" a "Power Users". Pridajte sa do obidvoch rolí. Keď spustíte príklad, stránka vykoná porovnania IsInRole použitím viacerých techník. Niektoré porovnania sú vykonané použitím metódy Users.IsInRole. Príklad demonštruje, že objekt RolePrincipal je prístupný použitím normálnej syntaxe Page.User. Ukážka zároveň demonštruje pretypovanie návratovej hodnoty Page.User na RolePrincipal a následné volanie metódy IsInRole priamo na objekte RolePrincipal.

VB Programmtic Authorization
Run Sample View Source
Microsoft .NET Framework SDK QuickStart Tutorials Version 2.0
Copyright © 2005 Microsoft Corporation. All rights reserved.
Preklad do slovenského jazyka - Copyright © 2005 - 2007 www.aspnet.sk, www.qsh.sk
Pošlite komentár k tejto stránke
Copyright © 2002 - 2008 Chastia, spol. s r. o., Igor Stanek, Designed by Lacino
Portál je hostovaný na serveroch firmy Quantasoft - www.qsh.sk.