.Net Core 3.1 MVC — Авторизация — Как регистрировать успешные или неудачные входы в систему?

#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.1

3. Да, точно. Нужно как-то с этим разобраться. Я ранее просматривал руководство, ничего не делая из этого.

4. Перейдите к IAuthorizationRequirement реализации обработчика и, где вы можете внедрить необходимые службы и использовать их.