/// <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);
        }
Beispiel #5
0
        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);
        }