Пример #1
0
        /// <summary>
        /// Конструктор.
        /// </summary>
        /// <param name="environment">Окружение.</param>
        public ModAuthBaseConfig(CoreBaseEnvironment environment)
        {
            Environment = environment;

            FilePath = CreateFilePath();

            Settings = ModAuthBaseConfigSettings.Create(FilePath, Environment);
        }
Пример #2
0
        /// <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;
 }