.Net6 Program.cs文件

Program.cs文件

using CommonLibrary;
using IdentityServer4.AccessTokenValidation;
using Microsoft.OpenApi.Models;
using Swashbuckle.AspNetCore.SwaggerUI;
using static CommonLibrary.AppBuilderExtensions;

var builder = WebApplication.CreateBuilder(args);
var basePath = AppContext.BaseDirectory;

#region 引入配置文件
var _config = new ConfigurationBuilder()
                 .SetBasePath(basePath)
                 .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                 .Build();
builder.Services.AddSingleton(new AppSettingsHelper(_config));
#endregion

#region 接口分组
var groups = new List<Tuple<string, string>>
{
    //new Tuple<string, string>("Group1","分组一"),
    //new Tuple<string, string>("Group2","分组二")
};
#endregion

#region 添加swagger注释
builder.Services.AddSwaggerGen(a =>
{
    a.SwaggerDoc("v1", new OpenApiInfo
    {
        Version = "v1",
        Title = "Api",
        Description = "Api接口文档"
    });
    foreach (var item in groups)
    {
        a.SwaggerDoc(item.Item1, new OpenApiInfo { Version = item.Item1, Title = item.Item2, Description = $"{item.Item2}接口文档" });
    }
    a.IncludeXmlComments(Path.Combine(basePath, "NET7MicroService.xml"), true);
    a.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
    {
        Description = "Value: Bearer {token}",
        Name = "Authorization",
        In = ParameterLocation.Header,
        Type = SecuritySchemeType.ApiKey,
        Scheme = "Bearer"
    });
    a.AddSecurityRequirement(new OpenApiSecurityRequirement()
    {
      {
        new OpenApiSecurityScheme
        {
          Reference = new OpenApiReference
          {
            Type = ReferenceType.SecurityScheme,
            Id = "Bearer"
          }, Scheme = "oauth2", Name = "Bearer", In = ParameterLocation.Header }, new List<string>()
        }
    });
});
#endregion

#region 添加身份认证
builder.Services.AddAuthentication("Bearer").AddIdentityServerAuthentication(options =>
{
    options.RequireHttpsMetadata = false;
    options.Authority = AppSettingsHelper.Get("IdentityServer:Authority");
    options.ApiName = AppSettingsHelper.Get("IdentityServer:ApiName");
    options.SupportedTokens = SupportedTokens.Both;
});
#endregion

// Add services to the container.
builder.Services.AddControllersWithViews();

var app = builder.Build();

// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/Home/Error");
}
app.UseStaticFiles();

app.UseRouting();

app.UseAuthentication();//添加鉴权认证
app.UseAuthorization();


#region 启用swaggerUI
app.UseSwagger();
app.UseSwaggerUI(a =>
{
    a.SwaggerEndpoint($"/swagger/v1/swagger.json", "V1 Docs");
    foreach (var item in groups)
    {
        a.SwaggerEndpoint($"/swagger/{item.Item1}/swagger.json", item.Item2);
    }
    a.RoutePrefix = string.Empty;
    a.DocExpansion(DocExpansion.None);
    a.DefaultModelsExpandDepth(-1);//不显示Models
});
#endregion

#region 注册服务
app.RegisterConsul(app.Lifetime, new ServiceEntity
{
    IP = AppSettingsHelper.Get("Service:IP"),
    Port = Convert.ToInt32(AppSettingsHelper.Get("Service:Port")),
    ServiceName = AppSettingsHelper.Get("Service:Name"),
    ConsulIP = AppSettingsHelper.Get("Consul:IP"),
    ConsulPort = Convert.ToInt32(AppSettingsHelper.Get("Consul:Port"))
});
#endregion

app.MapControllerRoute(
    name: "default",
    pattern: "{controller=Home}/{action=Index}/{id?}");

app.Run();

配置文件内容

{
  "IdentityServer": {
    "Authority": "http://localhost:8501",
    "ApiName": "net7_microservice"
  },
  "Service": {
    "IP": "localhost",
    "Port": "8503",
    "Name": "NET7Service"
  },
  "Consul": {
    "IP": "localhost",
    "Port": "8500"
  }
}

1

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值