asp.net-core - 如何在中间件中解析 ~/ aka application relative url?
问题描述
我正在努力将用户重定向到 ASP.NET Core 中间件中的正确位置。
我要归档的是应用程序相对重定向,因此如果我的应用程序以https://www.example.com/app运行,则生成的任何链接都应植根于那里。
例如 ~/path 应该解析为 /app/path。
我尝试使用 UrlHelperFactory,但那是 MVC,需要一个 ActionContext,它不存在于中间件中。
这是我的中间件的代码示例:
app.Map(pathMatch, appMap =>
{
// [... more code ...]
appMap.Use((context, next) =>
{
var nextUrl = context.Request.Query["nextUrl"];
var applicationBase = context.Request.PathBase;
if (nextUrl == StringValues.Empty || !UrlUtil.IsLocalUrl(nextUrl[0]))
{
context.Response.Redirect(applicationBase);
}
else
{
context.Response.Redirect(applicationBase.Add(nextUrl[0]));
}
return Task.CompletedTask;
});
});
解决方案
推荐阅读
- file - 使用 Glide 显示保存到外部存储 MediaStore 中的图像
- c# - 如何构建 SSAS 项目文件以在 Cube 上执行 Adomd?
- c - 使用两个源文件编译 C 项目时出错 (linux)
- c - 我不知道为什么写系统调用似乎没有延迟
- php - 当 WooCommerce 中的库存为零时,PHP Snippet 隐藏简短描述
- reactjs - 未捕获的错误:当在反应路由器内的组件内使用 useState 时,挂钩调用无效
- python - 使用 imshow 绘制数组时将特定颜色分配给数组的值而不创建辅助数组
- c# - 有没有办法在 C# 中获取 AsymmetricKeyParameter 的密钥 ID 和指纹?
- google-sheets - ArrayFormula、RegexExtract 和加入 Google 表格
- react-native - 无法回电购买的产品?适用于 React 本机 iOS 的 IAP