/// <summary> /// Конструктор. /// </summary> /// <param name="environment">Окружение.</param> public ModAuthBaseConfig(CoreBaseEnvironment environment) { Environment = environment; FilePath = CreateFilePath(); Settings = ModAuthBaseConfigSettings.Create(FilePath, Environment); }
/// <summary> /// Мод "Auth". Веб. Расширение. Настроить. Аутентификацию. /// </summary> /// <param name="services">Сервисы.</param> /// <param name="configSetting">Конфигурационная настройка.</param> /// <returns>Построитель аутентификации.</returns> public static AuthenticationBuilder ModAuthWebExtConfigureAuthentication( this IServiceCollection services, IModAuthBaseConfigSettings configSetting ) { var configSettingTypesJwt = configSetting.Types?.Jwt; var configSettingTypesOidc = configSetting.Types?.Oidc; var authTypeIsJwt = configSetting.Type == CoreBaseAuthEnumTypes.Jwt && configSettingTypesJwt != null; var authTypeIsOidc = configSetting.Type == CoreBaseAuthEnumTypes.Oidc && configSettingTypesOidc != null; var authDefaultScheme = authTypeIsJwt || authTypeIsOidc ? JwtBearerDefaults.AuthenticationScheme : CookieAuthenticationDefaults.AuthenticationScheme; var result = services.AddAuthentication(options => { options.DefaultAuthenticateScheme = authDefaultScheme; options.DefaultChallengeScheme = authDefaultScheme; options.DefaultScheme = authDefaultScheme; }); if (authTypeIsOidc) { result.AddJwtBearer(authDefaultScheme, options => { options.Authority = configSettingTypesOidc.Authority; options.RequireHttpsMetadata = configSettingTypesOidc.RequireHttpsMetadata; options.Audience = configSettingTypesOidc.Audience; }); } else if (authTypeIsJwt) { #if TEST || DEBUG IdentityModelEventSource.ShowPII = true; #endif result.AddJwtBearer(); ConfigureAuthenticationJwt(services, configSettingTypesJwt); } else { result.AddCookie(); ConfigureAuthenticationCookie(services); } ConfigureAuthorization(services, new[] { authDefaultScheme }); return(result); }
/// <summary> /// Хост. Веб. Часть "Auth". Включить. /// </summary> /// <param name="configSettings">Конфигурационные настройки.</param> public void HostWebPartAuthenticationEnable(IModAuthBaseConfigSettings configSettings) { ModAuthBaseConfigSettings = configSettings; }