/ / ASP.NET: Własna implementacja IsInRole - asp.net, autoryzacja, role

ASP.NET: Własna implementacja IsInRole - asp.net, autoryzacja, role

Przepraszam za mój angielski.

Czy można zastąpić logikę IsInRole w asp.net? Korzystam z własnych tabel ról w bazie danych i chciałbym wiedzieć, jak korzystać z własnej logiki.

Coś jak dziedziczenie z PrincipialBase. Może znasz jakieś sposoby?

Odpowiedzi:

3 dla odpowiedzi № 1

Używałbym RoleProvider tylko, jeśli używaszinne aspekty uwierzytelniania ASP.NET i zarządzania autoryzacjami. Jeśli jednak masz własną bazę danych do przechowywania informacji o rolach i masz już interfejs użytkownika do zarządzania rolami użytkowników, możesz po prostu utworzyć GenericPrincipal ze swoimi rolami i zastąpić go HttpContext.Current.User podczas PostAuthenticateRequest (dla ASP.NET ).

MVC różni się nieco w zależności od sposobu zarządzania autoryzacją. Oto powiązane pytanie.

zarządzanie rolami aplikacji w asp.net mvc (How)?

Lepiej jest ładować wszystkie role dla użytkownika raz na żądanie, a następnie wielokrotnie sprawdzać role w bazie danych podczas żądania.


2 dla odpowiedzi nr 2

Następnie musisz zaimplementować niestandardowy RoleProvider. Tutaj jest przewodnik po implementacji RoleProvider.


0 dla odpowiedzi № 3

Microsoft wydany kod źródłowy dla domyślnych dostawców (członkostwo, rola itp.). To także świetny przykład przy wdrażaniu własnego dostawcy. Kiedyś zaimplementowałem niestandardowego dostawcę ról, bardzo mi to pomogło.