ASP.NET:跟踪动态subdomaiins

时间:2016-07-05 17:13:05

标签: asp.net

我的公司希望邮寄明信片,要求收件人访问网站以获取添加信息。明信片上的网址将包含一个独特的子域名,用于跟踪目的。

例如,John Smith的网址看起来像johnsmith.mysite.com。艾米约翰逊的明信片网址将是amyjohnson.mysite.com等。

所以,2个问题。一,可以以这种方式设置网址吗?我们将发送数以千计的独特明信片,因此在我们的网站主机管理部分手动设置子域名是不现实的。还有两个,如何在asp.net中,我可以只捕获子域吗?

由于

1 个答案:

答案 0 :(得分:0)

我采取了另一种方法来解决我的问题。我没有尝试完全以编程方式处理这个问题,而是使用我的网络主机(GoDaddy)在我的域上创建了一个“通配符DNS”。它有一些信息at this link.

一旦我的域名设置为允许通配符子域名,我就可以进入我的代码,并使用以下内容,这样我就可以提取子域名:

Uri url = new Uri(System.Web.HttpContext.Current.Request.Url.AbsoluteUri);
string subDomain = GetSubDomain(url);

和...

public string GetSubDomain(Uri url)
    {
        if (url.HostNameType == UriHostNameType.Dns)
        {
            var host = url.Host;
            if (host.Split('.').Length > 2)
            {
                var lastIndex = host.LastIndexOf(".");
                var index = host.LastIndexOf(".", lastIndex - 1);
                return host.Substring(0, index);
            }
        }
        return null;
    }