提问人:yehonatan fridman 提问时间:11/16/2023 更新时间:11/16/2023 访问量:35
无法重定向回我的自定义域 URL
Can't redirect back to my custom domain URL
问:
我的 Razor 页面 Web 应用中的域 URL 有问题。
以下是原始 URL,如下所示:
https://mySiteName-stage-bo.azurewebsites.net
还有自定义域:
https://officestage.mySiteName.com
我正在使用外部提供商的服务来执行 2FA。
基本上发生的事情是,在用户输入电子邮件和密码后,他被转移到他们的外部页面,在那里他必须执行另一个识别,然后他成功连接并进入APP。
我需要提供一个地址,用户在流程结束时应返回该地址。设置如下所示:
var request = new TrackRequest(
UserId: employee.Id.ToString(),
Email: employee.Email,
Action: "signin",
RedirectUrl: $"{HttpContext.Request.Scheme}://{HttpContext.Request.Host}/Login?handler=AuthsignalCallback"
);
如果访问者通过原始 URL (mySiteName-stage-bo.azurewebsites.net) 输入,则没有错误,一切都很好,工作顺利。
问题在于用户从自定义域进入时。
出于某种原因,本节:
RedirectUrl: $"{HttpContext.Request.Scheme}://{HttpContext.Request.Host}/Login?handler=AuthsignalCallback"
返回原始 URL,而不是 CUSTOM URL。
我咨询了第三方供应商的支持,他将我引向了这篇 Microsoft 文章:
https://learn.microsoft.com/en-us/azure/architecture/best-practices/host-name-preservation
强调不正确的重定向 URL 部分
我们确实在 Azure 中使用应用程序 Gateawy。
有没有可能我错过了一些设置?
基本上,我需要确保当访问者通过自定义域进行连接时,他将返回到自定义域,而不是原始主机 URL。我试图改变我在代码中获取 URL 的方式,也尝试更改我的 Startup.cs 中的一些设置,但所有结果都是一样的。
我试图通过许多不同的方法获取绝对的 URL,例如像这样设置启动:
public void ConfigureServices(IServiceCollection services)
{
services.Configure<ForwardedHeadersOptions>(options =>
{
options.ForwardedHeaders =
ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedHost;
// Only loopback proxies are known to be safe by default
options.KnownNetworks.Clear();
options.KnownProxies.Clear();
});
// Other service configurations...
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseForwardedHeaders();
// Other app configurations...
}
并且还尝试了不同的方法来替换 HttpContext.Request,但没有任何效果。
答: 暂无答案
评论