Example #1
0
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();

            services.AddSingleton <IConfiguration>(Configuration);

            services.AddIdentity <User, Role>()
            .AddEntityFrameworkStores <OdContext>()
            .AddDefaultTokenProviders();

            services.AddScoped <RoleManager <Role> >();

            var authConfig = Configuration.GetSection("Authentication").Get <AuthenticationConfig>();

            services.AddAuthentication(v =>
            {
                //v.DefaultAuthenticateScheme = GoogleDefaults.AuthenticationScheme;
                //v.DefaultChallengeScheme = GoogleDefaults.AuthenticationScheme;
            })
            .AddGoogle(options =>
            {
                options.ClientId     = authConfig.Google.ClientId;
                options.ClientSecret = authConfig.Google.ClientSecret;
            })
            .AddVkontakte(options =>
            {
                options.ClientId     = authConfig.Vk.ClientId;
                options.ClientSecret = authConfig.Vk.ClientSecret;
            })
            .AddJwtBearer(options =>
            {
                options.RequireHttpsMetadata      = false;
                options.TokenValidationParameters = new TokenValidationParameters
                {
                    // укзывает, будет ли валидироваться издатель при валидации токена
                    ValidateIssuer = true,
                    // строка, представляющая издателя
                    ValidIssuer = AuthOptions.ISSUER,

                    // будет ли валидироваться потребитель токена
                    ValidateAudience = true,
                    // установка потребителя токена
                    ValidAudience = AuthOptions.AUDIENCE,
                    // будет ли валидироваться время существования
                    ValidateLifetime = true,

                    // установка ключа безопасности
                    IssuerSigningKey = AuthOptions.GetSymmetricSecurityKey(),
                    // валидация ключа безопасности
                    ValidateIssuerSigningKey = true,
                };
            });

            DiMapper.Map(services);
        }
        private static void InitializeDiContainer()
        {
            var kernel = new StandardKernel();

            kernel.Bind <IDiContainer>().To <DiContainer>().InSingletonScope();

            var mapper = new DiMapper();

            DiContainer = kernel.Get <IDiContainer>();

            mapper.Map(DiContainer);
        }