#c# #.net #logging #authorization
#c# #.net #ведение журнала #авторизация
Вопрос:
Я пытаюсь понять, как я могу регистрировать успешный или неудачный вход пользователя при использовании авторизации.
Я смотрел на https://docs.microsoft.com/en-us/aspnet/core/security/authorization/roles?view=aspnetcore-5.0 не имея четкого представления о том, как действовать дальше.
Мой текущий ConfigureServices
в Startup.cs, где я настраиваю авторизацию Active Directory:
public void ConfigureServices(IServiceCollection services)
{
services.Configure<CookiePolicyOptions>(options =>
{
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.AddAuthentication(Microsoft.AspNetCore.Server.IISIntegration.IISDefaults.AuthenticationScheme);
services.AddAuthorization(options =>
{
options.AddPolicy("ADRoleOnly", policy => policy.RequireRole(Configuration["SecuritySettings:ADGroup"]));
});
services.AddMvc(config =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
config.Filters.Add(new AuthorizeFilter(policy));
});
services.AddLogging();
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
}
Комментарии:
1. Вы можете определить обработчик авторизации и использовать его для ведения журнала. Проверьте это
2. Вы можете проверить
policyBuilder.RequireAssertion
и в определении функцииRequireRole
, которые могут быть оценены; Однако это вызвало бы другой вопрос, как внедритьILogger
ConfigureServices
метод .Net 3.13. Да, точно. Нужно как-то с этим разобраться. Я ранее просматривал руководство, ничего не делая из этого.
4. Перейдите к
IAuthorizationRequirement
реализации обработчика и, где вы можете внедрить необходимые службы и использовать их.