Я проверяю вошедшие в систему роли пользователя в _LoginPartial.cshtml
, чтобы изменить элемент дизайна на основе роли.
Это хороший способ сделать или есть лучший Кстати?
int ix = User.IsInRole("SiteAdmin")
? 0
: User.IsInRole("SysOp")
? 1
: User.IsInRole("SupportAgent")
? 2
: User.IsInRole("GroupAdmin")
? 3
: User.IsInRole("GroupUser")
? 4
: 5;
Тогда я использую ix
в качестве индексатора в string[]
btnDesign[]
:
class="btn @(btnDesign[ix])"
Я знаю, что мой чек потенциально вызывает пять отдельных поездок в базу данных, и именно поэтому я задаю этот вопрос.
Обновление Я немного "оптимизировал" его. Видя, что «GroupUser» больше, чем «SiteAdmin», я включил проверку его головы (и удалил одну роль, SupportAgent):
int ix = User.IsInRole("GroupUser")
? 0
: User.IsInRole("GroupAdmin")
? 1
: User.IsInRole("SysOp")
? 2
: User.IsInRole("SiteAdmin")
? 3
: 4;
Теперь проверка, предположительно, будет максимально быстрой для большинства вошедших в систему пользователей, которые являются «GroupUser».
Тем не менее, я хотел бы знать, возможно ли дальнейшее его улучшение.