目标:在运行 ASP.NET Core 2.2 Web 应用程序时尽快在浏览器中获取 URL。
我尝试的是 Startup.cs
中几乎所有类型的黑客攻击, 这确保您可以使用 DI 注册 IHttpContextAccessor
访问 HttpContext
有人会说用
var url = HttpContext?.Request?.GetDisplayUrl();
您可以在 Controller 中使用它,但是如果您转到定义,您会看到 HttpContext 来自 Mvc 等的 ControllerBase。
好像有好几篇关于这个的帖子,都没有解决办法。
- 我打算构建中间件 - 很好,但我不知道该怎么做
- 我看到一篇关于中间件的文章并调用了
Invoke
方法,但是如何以及在哪里等..? Current URL in ASPCore Middleware? - 似乎我只想要我在“经典”.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/