You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 6中如何在构建器内获取当前环境以条件禁用授权

.NET 6 仅在开发环境注册授权绕过服务的实现方案

在WebApplication.CreateBuilder构建器阶段,你可以直接通过builder.Environment访问当前环境信息,无需等到构建完成后再获取。WebApplicationBuilder本身内置了IWebHostEnvironment实例,和后续app.Environment是同一个对象,完全适配.NET 6+的顶级语句风格。

具体实现代码

将服务注册逻辑包裹在环境判断语句中即可:

var builder = WebApplication.CreateBuilder(args);

// 其他服务注册代码(如身份验证、授权策略配置等)...

// 仅在开发环境注册 DisableAuthorization
if (builder.Environment.IsDevelopment())
{
    builder.Services.AddSingleton<IAuthorizationHandler, DisableAuthorization>();
}

var app = builder.Build();

// 后续中间件配置...

额外说明

  • 除了IsDevelopment(),还可以用IsStaging()、IsProduction()判断标准环境;如果是自定义环境名称,使用builder.Environment.IsEnvironment("CustomEnv")即可。
  • 该方式完全替代旧的Startup类模式,符合.NET 6+的极简项目结构设计。

内容的提问来源于stack exchange,提问作者geoCode

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 05:18:16