Esempio n. 1
0
 public AuthorizeCheckOperationFilter(SupplyApiConfiguration supplyApiConfiguration)
 {
     _supplyApiConfiguration = supplyApiConfiguration;
 }
Esempio n. 2
0
        public static IServiceCollection AddSwaggerConfig(this IServiceCollection services, SupplyApiConfiguration supplyApiConfiguration)
        {
            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc(supplyApiConfiguration.ApiVersion, new OpenApiInfo {
                    Title = supplyApiConfiguration.ApiName, Version = supplyApiConfiguration.ApiVersion
                });
                #region 读取xml信息

                // 使用反射获取xml文件。并构造出文件的路径
                var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
                var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
                // 启用xml注释. 该方法第二个参数启用控制器的注释,默认为false.
                c.IncludeXmlComments(xmlPath, true);
                #endregion

                c.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme
                {
                    Type  = SecuritySchemeType.OAuth2,
                    Flows = new OpenApiOAuthFlows
                    {
                        Implicit = new OpenApiOAuthFlow
                        {
                            AuthorizationUrl = new Uri($"{supplyApiConfiguration.IdentityServerBaseUrl}/connect/authorize"),
                            TokenUrl         = new Uri($"{supplyApiConfiguration.IdentityServerBaseUrl}/connect/token"),
                            Scopes           = new Dictionary <string, string> {
                                { supplyApiConfiguration.OidcApiName, supplyApiConfiguration.ApiName }
                            }
                        }
                    }
                });
                c.OperationFilter <AuthorizeCheckOperationFilter>();
            });

            return(services);
        }