Czy Roles.AddUserToRole jest naprawdę tym, czego szukam, aby zaspokoić moje potrzeby. Myślę, że muszę przechowywać role użytkowników w sesji, prawda?
NIE! Dodanie użytkownika do ról oznacza, że dostawca połączy użytkownika z rolą. Ponieważ masz już połączonego użytkownika, jest to bezwartościowy kierunek.
przechowuj te role w jakiś sposób, abym mógł wyświetlać kontrolki i linki na podstawie ich przynależności do ról
Dlaczego musisz to zrobić? Na poziomie strony można skonfigurować zabezpieczenia ASP.NET za pomocą przycinania, dzięki czemu można automagicznie wykluczać strony z widoku użytkownika, jeśli nie mają odpowiednich ról. Jeśli chodzi o sekcje/kontrolki/itd., możesz sprawdzić, czy użytkownik JEST w roli, a następnie określić, czy go wyświetlić. Jeśli używasz sekcji, wiele z tego można zrobić deklaratywnie, a nie programowo.
Jedynym zastrzeżeniem jest to, co obsługuje Twój dostawca członkostwa. Dostawcy "po wyjęciu z pudełka" (Access i SQL Server) obsługują docinanie zabezpieczeń i deklaratywną składnię dla wykluczeń sekcji strony itp. Jeśli dostawca MySQL w pełni implementuje wszystkie metody, powinieneś również z niego korzystać . Jeśli utworzysz niestandardowego dostawcę, musisz zaimplementować pewne elementy, aby wszystko działało.
Krótka historia jest taka, że po zdobyciu członkostwaUżytkownika (uwierzytelnienie osoby) będziesz mieć dostęp do tego, czy osoba jest w roli, czy nie. To wszystko jest częścią standardowej implementacji dostawcy członkostwa w .NET. Dopóki dostawca, z którego korzystasz dla MySQL, obsługuje wszystkie te same metody, możesz przeprowadzić szybkie wyszukiwanie w Google i znaleźć mnóstwo witryn pokazujących, jak wyświetlać/ukrywać bity w oparciu o role.