/// <summary> /// /// </summary> /// <param name="builder"></param> /// <param name="encryptKey"></param> /// <param name="serviceLifetime"></param> public static void UseDesEncryptor(this AuthorizeOptionsBuilder builder, string encryptKey, ServiceLifetime serviceLifetime = ServiceLifetime.Singleton) { IEncryptor func(IServiceProvider provider) { return(new DesEncryptor(encryptKey)); } builder.SetEncryptor(func, serviceLifetime); }
/// <summary> /// /// </summary> /// <param name="builder"></param> public static void UseMemoryCache(this AuthorizeOptionsBuilder builder) { ICacheAgent func(IServiceProvider provider) { return(new MemoryCacheAgent()); } builder.SetCache(func); }
/// <summary> /// /// </summary> /// <param name="builder"></param> /// <param name="redisConfig"></param> /// <param name="serviceLifetime"></param> public static void UseRedisCache(this AuthorizeOptionsBuilder builder, string redisConfig, string prefix = null, ServiceLifetime serviceLifetime = ServiceLifetime.Singleton) { ICacheAgent func(IServiceProvider provider) { return(new RedisCacheAgent(prefix, redisConfig)); } builder.SetCache(func, serviceLifetime); }
/// <summary> /// Adds the authorize. /// </summary> /// <returns>The authorize.</returns> /// <param name="services">Services.</param> /// <param name="options">Action.</param> public static IServiceCollection AddAuthorize(this IServiceCollection services, Action <AuthorizeOptionsBuilder> options = null) { var builder = new AuthorizeOptionsBuilder(); options?.Invoke(builder); builder.BuildServices(services); //services.AddSingleton<IAuthorizeManagement, AuthorizeManagement>(); services.AddTransient <RolePermissionChangeNotifier>(); services.AddSingleton <PermissionManagement>(); services.AddMvc(x => { x.Filters.Add <AuthorizeFilter>(); }); return(services); }
public static IServiceCollection AddAuthorize(this IServiceCollection services, Action <AuthorizeOptionsBuilder> action = null) { var builder = new AuthorizeOptionsBuilder(); action?.Invoke(builder); var options = builder.Build(); var management = new AuthorizeManagement(options); services.AddSingleton <IAuthorizeManagement>(management); services.AddSingleton <IPermissionManagement, PermissionManagement>(); Type permissionType = builder.GetPermissionType(); if (permissionType != null) { services.AddSingleton(typeof(IPermissionModule), permissionType); } services.AddMvc(x => { x.Filters.Add <AuthorizeFilter>(); }); return(services); }