public static ASFBuilder AddAuthenticationJwtBearer(this ASFBuilder build, TokenOptions options) { build.Services.AddSingleton <IAccessTokenGenerate>(new AccessTokenGenerate(options)); var tokenValidationParameters = new TokenValidationParameters { ValidateIssuerSigningKey = true, IssuerSigningKey = options.SigningCredentials.Key, ValidateIssuer = true, ValidIssuer = options.Issuer, ValidateAudience = true, ValidAudience = options.Audience, ValidateLifetime = true, ClockSkew = TimeSpan.Zero, RequireExpirationTime = true }; build.Services.AddAuthentication(opt => { opt.DefaultScheme = options.DefaultScheme; }) .AddJwtBearer(options.DefaultScheme, opt => { opt.RequireHttpsMetadata = options.RequireHttpsMetadata; opt.TokenValidationParameters = tokenValidationParameters; }); return(build); }
/// <summary> /// 添加Jwt授权 /// </summary> /// <param name="build"><see cref="ASFBuilder"/></param> /// <param name="action"></param> /// <returns></returns> public static ASFBuilder AddAuthenticationJwtBearer(this ASFBuilder build, Action <TokenOptions> action) { TokenOptions options = new TokenOptions(); action?.Invoke(options); return(build.AddAuthenticationJwtBearer(options)); }
/// <summary> /// 添加ASF核心服务 /// </summary> /// <param name="services"></param> /// <param name="startupAction">ASF启动配置函数</param> /// <returns></returns> internal static IServiceCollection AddASFCore(this IServiceCollection services, Action <ASFBuilder> startupAction) { ASFBuilder builder = new ASFBuilder(services); startupAction?.Invoke(builder); builder.Build(); return(services); }
/// <summary> /// 注入缓存仓储层 /// </summary> /// <param name="builder"></param> private static void AddRepositoriesCache(this ASFBuilder builder) { builder.Services.AddScoped <IUnitOfWork, UnitOfWork>(); builder.Services.AddScoped <ILoggingRepository, LogInfoRepository>(); builder.AddAccountRepositoryCache <AccountRepository>(); builder.AddPermissionRepositoryCache <PermissionRepository>(); builder.AddRoleRepositoryCache <RoleRepository>(); }
/// <summary> /// 注入缓存仓储层 /// </summary> /// <param name="builder"></param> private static void AddRepositoriesCache(this ASFBuilder builder, ASFOptions options) { builder.Services.AddDbContext <RepositoryContext>(opt => opt.UseSqlite(options.DbConnectionString), ServiceLifetime.Scoped); builder.Services.AddScoped <IUnitOfWork, UnitOfWork>(); builder.Services.AddScoped <ILoggingRepository, LogInfoRepository>(); builder.AddAccountRepositoryCache <AccountRepository>(); builder.AddPermissionRepositoryCache <PermissionRepository>(); builder.AddRoleRepositoryCache <RoleRepository>(); }
public static ASFBuilder AddSQLiteCache(this ASFBuilder builder, Action <ASFOptions> startupAction) { ASFOptions options = new ASFOptions(); startupAction?.Invoke(options); builder.Services.AddAnticorrsives(options); builder.AddRepositoriesCache(options); return(builder); }
public static ASFBuilder AddSQLiteCache(this ASFBuilder builder, string dbConnectionString) { var options = builder.Services.GetDefaultConfiguration(); options.DbConnectionString = dbConnectionString; builder.Services.AddAnticorrsives(options); builder.AddRepositoriesCache(options); return(builder); }
public static ASFBuilder AddDbContext(this ASFBuilder builder, Action <DbContextOptionsBuilder> configureDbContext, bool allowCache) { if (allowCache) { builder.AddDbContextCache(configureDbContext); } else { builder.AddDbContext(configureDbContext); } return(builder); }
public static ASFBuilder AddDbContext(this ASFBuilder builder, Action <DbContextOptionsBuilder> configureDbContext, IHostingEnvironment environment) { if (environment.IsDevelopment()) { builder.AddDbContext(configureDbContext); } else { builder.AddDbContextCache(configureDbContext); } return(builder); }
/// <summary> /// 添加添加ASF核心服务 /// </summary> /// <param name="services"></param> /// <param name="startupAction">ASF启动配置函数</param> /// <returns></returns> public static IServiceCollection AddASFCore(this IServiceCollection services, Action <ASFBuilder> startupAction) { var assembly = typeof(ASFBuilder).GetTypeInfo().Assembly; services.AddMvcCore() .AddApplicationPart(assembly) .AddControllersAsServices() .AddAuthorization() .AddJsonFormatters() .AddApiExplorer(); ASFBuilder builder = new ASFBuilder(services); startupAction?.Invoke(builder); builder.Build(); return(services); }
/// <summary> /// 注入缓存仓储层 /// </summary> /// <param name="builder"></param> private static void AddRepositoriesCache(this ASFBuilder builder) { // builder.AddAccountRepositoryCache<AccountRepository>(); }
public static ASFBuilder AddDbContextCache(this ASFBuilder builder, Action <DbContextOptionsBuilder> configureDbContext) { builder.Services.AddDbContext <RepositoryContext>(configureDbContext); builder.AddRepositoriesCache(); return(builder); }
/// <summary> /// 添加Jwt授权 /// </summary> /// <param name="build"><see cref="ASFBuilder"/></param> /// <param name="action"></param> /// <returns></returns> public static ASFBuilder AddAuthenticationJwtBearer(this ASFBuilder build, IConfiguration configuration) { TokenOptions options = configuration.Get <TokenOptions>(); return(build.AddAuthenticationJwtBearer(options)); }
/// <summary> /// 添加Jwt授权 /// </summary> /// <param name="build"><see cref="ASFBuilder"/></param> public static ASFBuilder AddAuthenticationJwtBearer(this ASFBuilder build) { return(build.AddAuthenticationJwtBearer(new TokenOptions())); }