ASP.net MVC - использование AuthorizeAttribute в нескольких средах с аутентификацией Windows - PullRequest
2 голосов
/ 18 ноября 2011

Я использую проверку подлинности Windows в моем приложении ASP.net MVC 3.У меня есть несколько разных ролей в моей системе:

Administrator
PowerUser
GeneralUser

У нас есть правило, согласно которому имена групп AD различны в каждой среде.

Например, в разделе Разработка имен ролейбудет:

Administrator_Dev
PowerUser_Dev
GeneralUser_Dev

В производстве это будет просто:

Administrator
PowerUser
GeneralUser

Есть ли хорошее решение для использования авторизации в этих различных средах без изменения кода, когда мне нужно выполнить развертывание вдругая среда?

Ответы [ 3 ]

1 голос
/ 18 ноября 2011

Разве вы не можете просто реализовать все роли?Если только не существует вероятность того, что роль Administrator_Dev будет производственным сайтом ...

[Authorize(Roles = "Administrator_Dev, Administrator")]
1 голос
/ 18 ноября 2011

Единственное решение, которое я могу придумать, - это условная компиляция.

Определите эти константы в файле с условной компиляцией.

#if DEV
public const string AdministratorGroupName = "Administrator_Dev";
#else
public const string AdministratorGroupName = "Administrator";
#endif

Это одна из проблем с декларативной авторизацией с использованием пользовательских атрибутов, которые необходимо определить во время компиляции.

Другой альтернативой является наличие другого пользовательского атрибута и реализация фильтра действий самостоятельно.

0 голосов
/ 14 сентября 2012

Я сделал это путем простого создания разделов конфигурации приложения в web.config , поместив имя группы AD, специфичной для среды, в раздел конфигурации приложения, а затем использовал свойство конфигурации в атрибуте Authorize. Затем я могу изменить имя группы, используя настраиваемый web.config для каждой среды. Для большинства приложений это необходимо в любом случае, чтобы иметь возможность иметь разные строки подключения для каждой среды. При этом вы можете просто использовать встроенный атрибут авторизации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...