ASP.NET MVC имеет хорошую поддержку для обеспечения безопасности на основе ролей, но использование строк в качестве имен ролей является безумным, просто потому, что они не могут быть строго типизированы как перечисления.
Например, у меня есть роль "Admin" в моем приложении. Строка "Admin" теперь будет существовать в атрибуте Authorize моего действия, на моей главной странице (для скрытия вкладки), в моей базе данных (для определения ролей, доступных каждому пользователю) и в любом другом месте в моем коде или представлении файлы, где мне нужно выполнить специальную логику для пользователей admin или non-admin.
Есть ли лучшее решение, помимо написания моего собственного атрибута авторизации и фильтра, который, возможно, будет иметь дело с набором значений перечисления?