• abp vnext 去IdentityServer 精简单体项目基于abp vnext 3.2版本


    1.使用cli创建模块项目

    2.修改XXX.HttpApi.Host项目的配置文件,将多余的那个删除

     3.修改XXX.HttpApi.Host项目中的XXXXHttpApiHostModule,修改ConfigureServices,添加一下红色字体内容。

    public override void ConfigureServices(ServiceConfigurationContext context)
            {
                var hostingEnvironment = context.Services.GetHostingEnvironment();
                var configuration = context.Services.GetConfiguration();
    
                Configure<AbpDbContextOptions>(options =>
                {
                  
                    options.UseMySQL();
    
                });
                context.Services.AddAbpDbContext<BookSystemHttpApiHostMigrationsDbContext>(options =>
                {
                    options.AddDefaultRepositories();
                });
                Configure<AbpMultiTenancyOptions>(options =>
                {
                    options.IsEnabled = MultiTenancyConsts.IsEnabled;
                });
    
                if (hostingEnvironment.IsDevelopment())
                {
                    Configure<AbpVirtualFileSystemOptions>(options =>
                    {
                        options.FileSets.ReplaceEmbeddedByPhysical<BookSystemDomainSharedModule>(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}src{0}BookSystem.Domain.Shared", Path.DirectorySeparatorChar)));
                        options.FileSets.ReplaceEmbeddedByPhysical<BookSystemDomainModule>(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}src{0}BookSystem.Domain", Path.DirectorySeparatorChar)));
                        options.FileSets.ReplaceEmbeddedByPhysical<BookSystemApplicationContractsModule>(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}src{0}BookSystem.Application.Contracts", Path.DirectorySeparatorChar)));
                        options.FileSets.ReplaceEmbeddedByPhysical<BookSystemApplicationModule>(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}src{0}BookSystem.Application", Path.DirectorySeparatorChar)));
                    });
                }
    
                context.Services.AddSwaggerGen(
                    options =>
                    {
                        options.SwaggerDoc("v1", new OpenApiInfo { Title = "BookSystem API", Version = "v1" });
                        options.DocInclusionPredicate((docName, description) => true);
                        options.CustomSchemaIds(type => type.FullName);
                    });
    
                Configure<AbpLocalizationOptions>(options =>
                {
                    options.Languages.Add(new LanguageInfo("cs", "cs", "Čeština"));
                    options.Languages.Add(new LanguageInfo("en", "en", "English"));
                    options.Languages.Add(new LanguageInfo("fr", "fr", "Français"));
                    options.Languages.Add(new LanguageInfo("pt-BR", "pt-BR", "Português"));
                    options.Languages.Add(new LanguageInfo("ru", "ru", "Русский"));
                    options.Languages.Add(new LanguageInfo("tr", "tr", "Türkçe"));
                    options.Languages.Add(new LanguageInfo("zh-Hans", "zh-Hans", "简体中文"));
                    options.Languages.Add(new LanguageInfo("zh-Hant", "zh-Hant", "繁體中文"));
                });
                AbpClaimTypes.UserId = JwtClaimTypes.Subject;
                AbpClaimTypes.UserName = JwtClaimTypes.Name;
                AbpClaimTypes.Role = JwtClaimTypes.Role;
                AbpClaimTypes.Email = JwtClaimTypes.Email;
    
                context.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
                    .AddJwtBearer(options =>
                    {
                        options.Authority = configuration["AuthServer:Authority"];
                        options.RequireHttpsMetadata = false;
                        options.Audience = "BookSystem";
                    });
    
                Configure<AbpDistributedCacheOptions>(options =>
                {
                    options.KeyPrefix = "BookSystem:";
                });
    
                if (!hostingEnvironment.IsDevelopment())
                {
                    var redis = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]);
                    context.Services
                        .AddDataProtection()
                        .PersistKeysToStackExchangeRedis(redis, "BookSystem-Protection-Keys");
                }
    
                context.Services.AddCors(options =>
                {
                    options.AddPolicy(DefaultCorsPolicyName, builder =>
                    {
                        builder
                            .WithOrigins(
                                configuration["App:CorsOrigins"]
                                    .Split(",", StringSplitOptions.RemoveEmptyEntries)
                                    .Select(o => o.RemovePostFix("/"))
                                    .ToArray()
                            )
                            .WithAbpExposedHeaders()
                            .SetIsOriginAllowedToAllowWildcardSubdomains()
                            .AllowAnyHeader()
                            .AllowAnyMethod()
                            .AllowCredentials();
                    });
                });
                Configure<AbpAspNetCoreMvcOptions>(options =>
                {
                    options.ConventionalControllers.Create(typeof(BookSystemApplicationModule).Assembly);
                });
            }

    4.修改xxx.HttpApi.Host项目EntityFrameworkCore文件目录下的BookSystemHttpApiHostMigrationsDbContextFactory.cs文件,将图中的替换为配置文件中的Default字段

    5.修改BookSystem.HttpApi项目,将里面的Samples文件夹删除。

    6.移除未使用的XXX.EntityFrameworkCore、XXX.MongoDB项目

  • 相关阅读:
    微信小程序获取用户绑定手机号码完整版
    SQL读取当天的数据
    Android 百度离线地图(由apk文件转入手机内部存储)
    解决windows家庭版系统不支持远程桌面功能问题
    微信小程序携参跳转页面
    微信小程序 websocket 封装
    微信小程序HTTP请求封装
    Ionic项目打包Android在9版本以上不能进行HTTP通信问题
    Ionic 使用 MQTT
    Ionic HTTP 请求
  • 原文地址:https://www.cnblogs.com/lkd3063601/p/13852907.html
Copyright © 2020-2023  润新知