C# .net core web - program.cs 配置

Program.cs

基础代码

var builder = WebApplication.CreateBuilder(args);

控制器/视图服务(这个没啥解释的 看自己的项目需求了)-必须项

纯API项目
builder.Services.AddControllers();

MVC项目
builder.Services.AddControllersWithViews();

Razor Pages项目
builder.Services.AddRazorPages();

Swagger/OpenAPI配置(API项目)-选用

builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
Swagger提供了一个简单、易于使用的方式来设计和文档化RESTful API。开发人员可以使用Swagger UI来创建和编辑API规范,然后使用Swagger Editor生成符合OpenAPI规范的API文档。Swagger UI可以生成可交互的API文档,使开发人员更容易了解API的结构和用法‌

响应压缩AddResponse Compression -必须

主要是预防后期响应数据太大导致response太慢
builder.Services.AddResponseCompression(options => { options.Providers.Add<BrotliCompressionProvider>(); options.Providers.Add<GzipCompressionProvider>(); options.EnableForHttps = true; });

JWT 设置请求token

JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear(); var jwtIssuerOption = new JwtIssuerOptions(builder.Configuration.GetSection("JwtIssuer")); builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer(options => { options.TokenValidationParameters = new TokenValidationParameters { ValidIssuer = jwtIssuerOption.Issuer, ValidAudience = jwtIssuerOption.Audience, IssuerSigningKey = new SymmetricSecurityKey(jwtIssuerOption.Secret), ValidateIssuerSigningKey = true, ClockSkew = TimeSpan.Zero }; });

跨域 Cors - 必须(配置很多 后面单独开一章)

builder.Services.AddCors(options => { options.AddPolicy("CorsPolicy", opt => opt.SetIsOriginAllowed(x => _ = true) .AllowAnyMethod() .AllowAnyHeader() .AllowCredentials() ); });

数据库连接 Add AmsContext - 必须

还有扩展写法 有兴趣的自研
builder.Services.AddDbContext<ApplicationDbContext>(options => options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));

SPA - 必须(现在大部分的web都是SPA 应用)

builder.Services.AddSpaStaticFiles(configuration: options => { options.RootPath = “wwwroot”; });

还能配置Email Job Google。。。

var app = builder.Build();

看个人项目需求 上面这些我用着差不多了。。下面是中间件

// 配置中间件管道 if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
app.UseHsts(); //HTTP严格传输安全
app.UseHttpsRedirection();
}
app.UseCors("CorsPolicy");

app.UseAuthentication();
app.UseAuthorization();

app.UseResponseCompression();

app.MapControllers();

// SPA
app.UseSpaStaticFiles();
app.UseSpa(configuration: builder => { });

app.Run();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

何之柱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值