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

标签 c# asp.net-core asp.net-core-mvc url-routing asp.net-mvc-routing

目标:在运行 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/

相关文章:

c# - Net Core 2 : Convert BundleConfig. cs 到 BundleConfig.json

c# - 如何使用 RestSharp 将请求作为 Xml 发布到 Web API?

c# - 将 C# MD5 哈希算法与 Node.js 相匹配

c# - DapperExtensions MySQL INSERT 集 ID

c# - JWT Middleware 未从 OpenIddict Issued JWT 获得声明

c# - 使用局部 View 时不显示表单验证消息

c# - Controller 方法(http get) : optional parameter is not null

asp.net-core - CSS、图像、JS 未加载 asp.net Core :(

c# - 中间件和 Scoped/Singleton 对象

c# - Microsoft Owin Self Host 与 Google Chrome 崩溃