Я потратил некоторое время на поиск и нашел много путаных ответов, поэтому я отправлю здесь для уточнения.
Я использую MVC4 VS2012, создав сайт Intranet с использованием проверки подлинности домена. Все работает. Однако для управления пользователями, имеющими доступ к различным областям этого веб-приложения, я предпочитаю не использовать группы AD, которые я не могу управлять, а также пользователи веб-приложения.
Есть ли альтернатива? Я предполагаю, что это связано с связыванием/хранением имен доменов, принадлежащих к пользовательским ролям, и использованием атрибута Authorize для управления доступом.
[Authorize(Roles = "Managers")]
Может ли кто-нибудь предложить лучший образец для этого или указать мне в правильном направлении?
Я вижу аналогичное решение ссылка, но я до сих пор не знаю, как использовать это против сохраненного списка ролей и проверять пользователя против этих ролей. Может ли кто-нибудь уточнить, будет ли это решение работать?
protected void Application_AuthenticateRequest(object sender, EventArgs args)
{
if (HttpContext.Current != null)
{
String[] roles = GetRolesFromSomeDataTable(HttpContext.Current.User.Identity.Name);
GenericPrincipal principal = new GenericPrincipal(HttpContext.Current.User.Identity, roles);
Thread.CurrentPrincipal = HttpContext.Current.User = principal;
}
}