asp.net-mvc - 使用自定义参数将多个域重定向到同一个 Azure 网站

标签 asp.net-mvc azure redirect iis azure-web-app-service

我有一个场景,我有一个可供多个客户使用的网站。 但我不想将网站发布到每个客户域。相反,我会将网站发布到 Azure 网站,例如 mywebsite.azurewebsites.net,并且我希望所有客户域都重定向到此 mywebsite.azurewebsites.net,但是我需要知道这是哪个客户,以便我可以显示正确的内容。例如,我正在考虑在查询字符串等中附加或发送隐藏的自定义参数。 我需要知道的是

  • 如何将所有域重定向到 mywebsite.azurewebsites.net
  • 如何在重定向中传递隐藏参数,例如来自客户域的任何请求,例如“www.cust1.com/Home/Index”将被重定向到“mywebsite.com”。 azurewebsites.net/Home/Index?username=testuser”和“www.cust1.com/Home/Index?querystring=ffff”到“mywebsite.azurewebsites.net? querystring=ffff&用户名=testuser"
  • 我不想在客户网站上发布任何网站内容,这意味着客户域根目录将为空。

最佳答案

有很多不同的方法可以做到这一点。

您需要确定的第一件事是:您将如何处理到 mywebsite.azurewebsites.net 的重定向

  1. 您是否打算直接在客户网站上放置代码以
    重定向?
  2. 您是否有权访问客户的 DNS,以便将他们的网站转发到 mywebsite.azurewebsites.net?
  3. 您想创建 CNAME 记录并将其指向您的 Azure 网站吗?

方法#1

如果您可以访问客户网站,那么这将成为最简单的方法。

如上所述,我只需使用某种类型的自定义网址(即 mywebsite.azurewebsites.net/customer1 )将用户重定向回您的网站。

当用户点击此页面时,您可以在他们的浏览器中设置一个 cookie,以便您知道他们来自哪里,然后将他们重定向到 mywebsite.azurewebsites.net 的主页。这几乎会立即发生,而客户永远不会注意到。

方法#2

如果您能够转发域名,或者他们只能将用户重定向到 mywebsite.azurewebsites.net 的主网站,您可以在请求传入时简单地查找引用 URL。然后按照上面的操作,基于然后,您可以在引用 URL 上设置 cookie 并显示正确的内容。

方法#3

假设您有权访问客户的 DNS 记录,并且能够为 www.customerwebsite.com -> mywebsite.azurewesbites.net 创建 CNAME 记录

在这种情况下,当用户访问该网站时,您只需下拉主机,然后根据该主机设置您的内容。

具体代码在这里:

string url = HttpContext.Current.Request.Url.AbsoluteUri;
// http://localhost:1302/TESTERS/Default6.aspx

string path = HttpContext.Current.Request.Url.AbsolutePath;
// /TESTERS/Default6.aspx

string host = HttpContext.Current.Request.Url.Host;
// localhost

您可以在这里找到更多信息:How to get the URL of the current page in C#

如果您有任何疑问或最终实现了这些解决方案,请告诉我。

关于asp.net-mvc - 使用自定义参数将多个域重定向到同一个 Azure 网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33561105/

相关文章:

asp.net-mvc - ViewBag 幕后花絮

c# - 如何在 ASP.NET MVC C# 中为 jqPlot 图表返回多维数组作为 JSON

azure - Azure Function App VS 2019 .NET 3.0 中出现错误 - 找不到方法 : 'IFunctionsHostBuilder.get_Services()'

c# - 如何在不使用 Azure SignalR 服务的情况下从 Azure Function 发送 SignalR 消息

Javascript 页面重新路由

apache - Htaccess 重定向特定的 slugs

c# - 在 ASP .NET MVC 5 中动态更改布局或样式表

Azure for Web Apps - 当我使用横向扩展时,可用总内存也会增加吗?

.htaccess - htaccess 如何仅重定向根而不重定向其他页面

asp.net-mvc - 为什么在 MVC 4 应用程序中初始化简单的成员资格属性