gpt4 book ai didi

c# - 在 ASP.NET Core 中尽快获取当前 URL program.cs/startup.cs

转载 作者:行者123 更新时间:2023-12-02 20:06:27 27 4
gpt4 key购买 nike

目标:在运行 ASP.NET Core 2.2 Web 应用程序时尽快在浏览器中获取 URL。

我尝试的是 Startup.cs 中几乎所有类型的黑客攻击, 这确保您可以使用 DI 注册 IHttpContextAccessor访问 HttpContext

有人会说用

var url = HttpContext?.Request?.GetDisplayUrl();

您可以在 Controller 中使用它,但是如果您转到定义,您会看到 HttpContext 来自 Mvc 等的 ControllerBase。

好像有好几篇关于这个的帖子,都没有解决办法。

  1. 我打算构建中间件 - 很好,但我不知道该怎么做
  2. 我看到一篇关于中间件的文章并调用了 Invoke方法,但是如何以及在哪里等..? Current URL in ASPCore Middleware?
  3. 似乎我只想要我在“经典”.net 中的 global.asax 中的内容以及 URL 等。

我看到程序使用 .UseStartup<Startup>(); 调用 Startup.cs是否有可能获得访问权限以结束目标以获取类似 http://localhost:4444 的 URL

所有我想要的......

var url = HttpContext?.Request?.GetDisplayUrl(); 

一旦 .net 核心在类库/startup/program.cs 中显示我的 URL 就会让我看到类似 http://localhost:4444 的 URL

最佳答案

对于处理请求,您可以尝试ASP.NET Core Middleware .

一个简单的中间件如下:

    public class Startup
{
//rest code

// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.Use((context,next) =>
{
var url = context.Request.GetDisplayUrl();
return next.Invoke();
});

//rest code
}
}

要使用 GetDisplayUrl(),添加

    using Microsoft.AspNetCore.Http.Extensions;

关于c# - 在 ASP.NET Core 中尽快获取当前 URL program.cs/startup.cs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54544938/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com