【发布时间】:2021-12-12 19:06:28
【问题描述】:
在我的 startup.cs 类中,我检查它是否是 DEV 环境,并且在我的 appsettings.json 和 appsettings.development.json 文件中有很多键值对。
但是我想封装一些仅在 DEV 环境中运行的代码,而当部署到 UAT、TEST 或 LIVE 时,代码不会被部署。
如何做到这一点?
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseMigrationsEndPoint();
}
else
{
app.UseHsts();
}
并且有一个类,因为这是我的类中的一个值,以获取子域运行的 URL(这也将是我的 IDENTITY 数据库中角色的值
private string SubDomain(HttpContext httpContext)
{
HttpRequest request = httpContext.Request;
string url = request.Headers["Host"];
string subDomainUrl = url.Replace("https://", "").Split('/')[0];
//我希望能够根据 http://localhost:44312/?role=adminUsers 获取我的域 //所以如果它在本地主机上运行并且角色是管理员用户,这只会在本地执行,因为远程 URL 有http://adminusers.mydomain.com
public void ConfigureServices(IServiceCollection services)
{
services.AddTransient<InjectMyClassHere>(); //My class or interface goes here
我希望这很清楚。我怎样才能做到这一点?即让这个类只在 DEV 中执行,而不是在 UAT、TEST 或 LIVE 环境中部署
【问题讨论】:
-
使用一个接口,根据环境通过DI暴露不同的实现
标签: c# asp.net-identity asp.net-roles