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: asp.net,
autoryzacja,
role provider
Categories: Techniczne
bb53d94f-4a4a-49a3-8cf1-b028c6c1441d|0|.0