protected void Application_Start() { DbContextSqlServer.SetDefaultConnectionString(System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ToString()); LogHelper.CreateRepository(Server.MapPath("/Log4Net/log4net.config")); AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); //BundleConfig.RegisterBundles(BundleTable.Bundles); //不需要 //注册自定义视图 ViewEngines.Engines.Clear(); // 清除原MVC视图引擎规则 ViewEngines.Engines.Add(new CustomViewEngine()); // 使用自定义视图引擎 /Sys/Base Tools.Log.WriteLog("应用程序已启动"); }
public static void AdminConfigureServices(this IServiceCollection services, IConfiguration Configuration) { #region HttpContext services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>(); #endregion #region AppConfig //配置 AppConfigs AppConfig.AdminAppConfig = Configuration.GetSection("AppConfig").Get <AdminAppConfig>(); #endregion #region DbFrame //注入链接字符串 DbContextSqlServer.Register(AppConfig.AdminAppConfig.SqlServerConnStr, (tabs) => { //注册Models Entitys.Class.EntitySet.Register(tabs); }); //将DbContextSqlServer对象注册Logic层静态对象中 Logic.Class.AppBase.db = new DbContextSqlServer(); //将DbContextSqlServer对象注册UI层构造函数中 //services.AddSingleton(Logic.Class.BaseLogic.db.GetType()); #endregion #region JWT services.AddAuthentication(Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer(options => { options.TokenValidationParameters = new Microsoft.IdentityModel.Tokens.TokenValidationParameters { ValidateIssuer = true, //是否验证Issuer ValidateAudience = true, //是否验证Audience ValidateLifetime = true, //是否验证失效时间 ValidateIssuerSigningKey = true, //是否验证SecurityKey ValidAudience = AppConfig.AdminAppConfig.JwtKeyName, //Audience ValidIssuer = AppConfig.AdminAppConfig.JwtKeyName, //Issuer,这两项和前面签发jwt的设置一致 IssuerSigningKey = new Microsoft.IdentityModel.Tokens.SymmetricSecurityKey(System.Text.Encoding.UTF8.GetBytes(AppConfig.AdminAppConfig.JwtSecurityKey)) //拿到SecurityKey }; }); #endregion #region Swagger 注册Swagger生成器,定义一个和多个Swagger 文档 services.AddSwaggerGen(options => { foreach (var item in _VersionList) { options.SwaggerDoc(item, new OpenApiInfo { Version = item }); } //为 Swagger JSON and UI设置xml文档注释路径 var xmlPath = Path.Combine(System.AppContext.BaseDirectory, "App.xml"); options.IncludeXmlComments(xmlPath, true); #region Jwt token 配置 //option.OperationFilter<AppService.SwaggerParameterFilter>(); // 给每个接口配置授权码传入参数文本框 // options.OperationFilter <AddResponseHeadersFilter>(); options.OperationFilter <AppendAuthorizeToSummaryOperationFilter>(); //很重要!这里配置安全校验,和之前的版本不一样 options.OperationFilter <SecurityRequirementsOperationFilter>(); //开启 oauth2 安全描述 options.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme { Description = "JWT授权(数据将在请求头中进行传输) 直接在下框中输入Bearer {token}(注意两者之间是一个空格)\"", In = ParameterLocation.Header, Name = "Authorization", Type = SecuritySchemeType.ApiKey, //Scheme = "basic", }); #endregion }); #endregion }