Я получаю имя пользователя через User.Identity.Name, однако мне нужен способ ограничить доступ к определенным страницам через группы в Active Directory.
Например, «Администраторы домена» могут видеть все страницы.и «Просмотр пользователей» может видеть только целевую страницу и еще одну.
In Startup.cs
services.AddAuthentication(IISDefaults.AuthenticationScheme);
services.AddAuthorization(options =>
{
options.AddPolicy("AdminRoleOnly", policy => policy.RequireRole(Configuration["SecuritySettings:AdminGroup"]));
});
services.AddMvc(config =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
config.Filters.Add(new AuthorizeFilter(policy));
});
Конфиг:
"SecuritySettings": {
"AdminGroup": "MYDOMAIN\\Domain Admins"
}
На моей модели страницы (У меня нет контроллеров):
[Authorize(Policy = "AdminRoleOnly")]
public class RequestsModel : PageModel
Я просто получаю сообщение о том, что я не авторизован, несмотря ни на что