Пример #1
0
        /// <summary>
        /// 添加IdentityServer服务到内存里
        /// </summary>
        /// <param name="services">服务收藏</param>
        /// <param name="options">IdentityServer服务端信息配置回调</param>
        /// <returns>IdentityServer生成器</returns>
        public static IIdentityServerBuilder AddIdentityServerInMemory(this IServiceCollection services, Action <IdentityServerServerInfo> options)
        {
            if (options == null)
            {
                throw new ArgumentException("IdentityServer服务端信息配置回调不能为空");
            }

            var config = new IdentityServerServerInfo();

            if (options != null)
            {
                options(config);
            }

            return(services.AddIdentityServerInMemory(config));
        }
Пример #2
0
        /// <summary>
        /// 添加IdentityServer服务到内存里
        /// </summary>
        /// <param name="services">服务收藏</param>
        /// <param name="config">IdentityServer服务端信息配置</param>
        /// <returns>IdentityServer生成器</returns>
        private static IIdentityServerBuilder AddIdentityServerInMemory(this IServiceCollection services, IdentityServerServerInfo config)
        {
            if (config == null)
            {
                throw new ArgumentNullException("IdentityServer服务端信息配置不能为null");
            }

            var irs       = config.IdentityResources.ToIdentityResources();
            var apiScopes = config.ApiScopes.ToApiScopes();
            var clients   = config.Clients.ToClients();
            var users     = config.TestUsers.ToTestUsers();

            var builder = services.AddIdentityServer();

            if (!irs.IsNullOrLength0())
            {
                builder.AddInMemoryIdentityResources(irs);
            }
            if (!apiScopes.IsNullOrLength0())
            {
                builder.AddInMemoryApiScopes(apiScopes);
            }
            if (!clients.IsNullOrLength0())
            {
                builder.AddInMemoryClients(clients);
            }
            if (!users.IsNullOrCount0())
            {
                builder.AddTestUsers(users);
            }

            if (config.UseDeveloperSigningCredential)
            {
                if (string.IsNullOrWhiteSpace(config.DeveloperSigningCredentialFile))
                {
                    builder.AddDeveloperSigningCredential();
                }
                else
                {
                    builder.AddDeveloperSigningCredential(filename: config.DeveloperSigningCredentialFile);
                }
            }

            return(builder);
        }