예제 #1
0
        // This method gets called by the runtime. Use this method to add services to the container.
        // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
        public void ConfigureServices(IServiceCollection services)
        {
            InMemoryConfiguration.Configuration = this.Configuration;

            services.AddIdentityServer(options =>
            {
                options.Events.RaiseErrorEvents       = true;
                options.Events.RaiseFailureEvents     = true;
                options.Events.RaiseInformationEvents = true;
                options.Events.RaiseSuccessEvents     = true;
            })
            .AddDeveloperSigningCredential()
            //生产环境时需要使用AddSigningCredential()
            .AddInMemoryApiResources(InMemoryConfiguration.GetApiResources())
            .AddInMemoryIdentityResources(InMemoryConfiguration.GetIdentityResources())
            .AddInMemoryClients(InMemoryConfiguration.GetClients())
            .AddTestUsers(InMemoryConfiguration.GetUsers().ToList());

            // add CORS policy for non-IdentityServer endpoints
            services.AddCors(options =>
            {
                options.AddPolicy("api", policy =>
                {
                    policy.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod();
                });
            });
        }
예제 #2
0
        // This method gets called by the runtime. Use this method to add services to the container.
        // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers(options =>
            {
                options.Filters.Add <TokenFilter>();                                    //����Զ���Ĺ�����
            });
            services.AddIdentityServer()                                                //Ids4����
            .AddDeveloperSigningCredential()                                            //��ӿ�����Աǩ��ƾ��
            .AddTestUsers(InMemoryConfiguration.Users().ToList())
            .AddInMemoryIdentityResources(InMemoryConfiguration.GetIdentityResources()) //����ڴ�apiresource
            .AddInMemoryApiResources(InMemoryConfiguration.GetApiResources())
            .AddInMemoryApiScopes(InMemoryConfiguration.GetApiScopes())
            .AddInMemoryClients(InMemoryConfiguration.GetClients());                              //�������ļ���Client������Դ�ŵ��ڴ�

            services.AddAuthentication(IdentityServerAuthenticationDefaults.AuthenticationScheme) //�����֤
            .AddJwtBearer(options =>
            {
                options.Authority = "https://*****:*****@qq.com"
                    }
                });
                var basePath = Path.GetDirectoryName(typeof(Program).Assembly.Location);
                var xmx      = Path.Combine(basePath, "IdentityService.xml");
                c.IncludeXmlComments(xmx);    //添加swagger注释
                c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
                {
                    Description = "Please enter into field the word 'Bearer' followed by a space and the JWT value",
                    Name        = "Authorization",          //http请求的
                    In          = ParameterLocation.Header, //标记从哪个地方传入验证
                    Type        = SecuritySchemeType.ApiKey //加密类型
                });
                c.AddSecurityRequirement(new OpenApiSecurityRequirement
                {
                    { new OpenApiSecurityScheme
                      {
                          Reference = new OpenApiReference()
                          {
                              Id   = "Bearer",
                              Type = ReferenceType.SecurityScheme//传入类型
                          }
                      }, Array.Empty <string>() }
                });
            });
        }