Я бы использовал RoleProvider, только если вы используете другие аспекты проверки подлинности и авторизации ASP.NET. Однако, если у вас есть собственная база данных для хранения информации о ролях и уже есть пользовательский интерфейс для управления ролями пользователей, вы можете просто создать GenericPrincipal с вашими ролями и заменить им HttpContext.Current.User во время PostAuthenticateRequest (для ASP.NET ).
MVC немного отличается в зависимости от того, как вы управляете авторизацией. Вот связанный вопрос.
Управление ролями приложений в asp.net mvc (Как)?
Лучше загружать все роли для пользователя один раз за запрос, чем проверять роли в базе данных несколько раз во время запроса.