无法重定向回我的自定义域 URL

Can't redirect back to my custom domain URL

提问人:yehonatan fridman 提问时间:11/16/2023 更新时间:11/16/2023 访问量:35

问:

我的 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,但没有任何效果。

C# Azure URL 重定向 DNS

评论


答: 暂无答案