Zarządzanie rolami oraz ich wykorzystywanie

Mając już skonfigurowane źródło danych do przechowywania informacji o rolach i użytkownikach przypisanych do danych ról oraz skonfigurowanego role managera, należy stworzyć odpowiednie role i przypisać do nich użytkowników. Istnieje kilka metod na stworzenie ról i przypisanie ich do użytkowników:

  • Podczas tworzenia aplikacji programista może skorzystać z ASP.NET Configuraction Tool;
  • Jeśli programista wykorzystuje AuthorizationStoreRoleProvider może wykorzystać do tego AzMan Microsoft Mangement Console (MMC);
  • Stworzyć role oraz przypisać do nich użytkowników programowo za pomocą API lub w przypadku wykorzystywania SqlRoleProvidera za pomocą skryptów języka sql wrzucających dane bezpośrednio do bazy danych;
  • W przypadku wykorzystywania WindowsTokenRoleProvider można wykorzystać narzędzie Windows Computer Management lub Active Directory Users and Computers do stworzenia Windowsowych grup oraz przypisania użytkowników do nich;

ASP.NET Web Site Configuration Tool

Programista może wykorzystać narzędzie ASP.NET Web Site Configuration Tool w czasie tworzenia aplikacji webowej w przypadku, gdy wykorzystuje uwierzytelnianie Forms oraz aplikacji wykorzystuje funkcjonalność ASP.NET membership. W przypadku korzystania z uwierzytelnia Windows programista nie może skorzystać z tego narzędzia.

W celu dodania nowej roli oraz przypisanie jej do użytkownika należy wykonać następujące czynności w ASP.NET Web Site Configuration Tool:

  • Stworzenie nowej roli
    • W menu Website wybranie opcji ASP.NET Configuraction
    • Wybranie zakładki Security
    • Kliknięcie w link Create or Manage Roles
    • Skorzystanie z formularza do dodania roli
  • Przypisanie roli do użytkownika:
  • W zakładce Security kliknięcie w link Create or Manage Roles
  • W kolumnie Add/Remove Users kliknięcie Manage dla roli, która została właśnie dodana, następnie w otwartym nowym formularzu programista może wybrać, czy użytkownik może być w dane roli, czy nie

Role Management API

Zarządzanie rolami oraz przypisywaniem do nich użytkowników programista może wykonać za pomocą dostarczonego przez ASP.NET Role Management API. W tym celu wystarczy skorzystać z klasy Roles  znajdującej się w przestrzenie nazw System.Web.Security  (w przypadku korzystania z WindowsTokenRoleProvider, który umożliwia tylko odczyt informacji dostępne są tylko metody IsUserInRole  oraz GetRolesForUser ).

Fragment kodu na listingu przedstawia jak za pomocą Role Management API utworzyć nową rolę:

   1: if (!Roles.RoleExists("TestRole"))
   2: {
   3:   Roles.CreateRole("TestRole");
   4: }

W przykładzie została użyta wcześniej wspomniana klasa Roles. Klasa ta posiada statyczną metodę RoleExists , która sprawdza, czy istnieje rola o przekazanej nazwie. Metoda ta zwraca wartość true, jeśli rola istnieje, w przeciwnym wypadku wartość false, gdy rola nie istnieje.

Drugą wykorzystaną w przykładzie metodą klasy Roles jest CreateRole , która tworzy rolę o przekazanej nazwie. Przed utworzeniem nowej roli powinno się sprawdzić, czy czasem rola o takiej nazwie nie istnieje. Dlatego w przykładzie w warunku ifa znajduje się wywołanie metody RoleExist.

Natomiast przykłady z listingu prezentują jak dodać użytkownika do roli:

   1: // Przykład 1 – Dodanie jednego użytkownika do jednej roli
   2: Roles.AddUserToRole("Uzytkownik", "Rola"); 
   3:  
   4: // Przykład 2 – Dodanie jednego użytkownika do kilku ról
   5: Roles.AddUserToRoles("Uzytkownik", 
   6:   new string[] { "Rola1", "Rola2" }); 
   7:  
   8: // Przykład 3 – Dodanie kilku użytkowników do jednej roli
   9: Roles.AddUsersToRole(
  10:   new string[] { "Uzytkownik1", "Uzytkownik2" }, "Rola"); 
  11:  
  12: // Przykład 4 – Dodanie kilku użytkowników do kilku ról
  13: Roles.AddUsersToRoles(
  14:   new string[] { "Uzytkownik1", "Uzytkownik2" }, 
  15:   new string[] { "Rola1",  "Rola2"});
  16:  

Cztery przykłady pokazują jak dodać użytkowników do ról. Każdy przykład wykorzystuje inną metodę klasy Roles, a tymi metodami są:

Tags: , ,
Categories: Techniczne

Permalink E-mail | Kick it! | DZone it! | del.icio.us Komentarze (0) Post RSSRSS comment feed

Dodaj komentarz


(Będzie pokazywało Gravatar ikon)

  Country flag

biuquote
  • Komentarz
  • Przegląd
Loading