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 № 1Uż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.