Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何检测您的站点';谁的域名?_C#_Asp.net_Asp.net Mvc 2_Iis 7 - Fatal编程技术网

C# 如何检测您的站点';谁的域名?

C# 如何检测您的站点';谁的域名?,c#,asp.net,asp.net-mvc-2,iis-7,C#,Asp.net,Asp.net Mvc 2,Iis 7,我不知道标题中的问题是否足够清楚 假设您有2个或N个域指向同一ip地址、您的服务器(在我的案例中是Windows server with IIS),并且您希望为每个域名创建自定义站点,因此您必须检测用户当前使用的域 应该有两个“自定义站点”。一个是管理应用程序站点,只有一个域名指向它,另一个是处理多个域名并基于它显示不同站点的应用程序 shoutem网络就是一个很好的例子。在is管理页面,应用程序实例是和,分别处理不同域名的应用程序 有可能吗?您想要完成的事情不是在ASP.Net内部处理的,而是

我不知道标题中的问题是否足够清楚

假设您有2个或N个域指向同一ip地址、您的服务器(在我的案例中是Windows server with IIS),并且您希望为每个域名创建自定义站点,因此您必须检测用户当前使用的域

应该有两个“自定义站点”。一个是管理应用程序站点,只有一个域名指向它,另一个是处理多个域名并基于它显示不同站点的应用程序

shoutem网络就是一个很好的例子。在is管理页面,应用程序实例是和,分别处理不同域名的应用程序


有可能吗?

您想要完成的事情不是在ASP.Net内部处理的,而是在IIS级别处理的。您可以指定IIS中的每个“站点”应处理的域。通常,您将有一个处理解析为IP的所有域的站点,但您可以有多个绑定到IP的站点,这些站点都应具有完全不同的docroot(即,不同的应用程序/站点文件)。关键是,您不必在应用程序代码中担心这一点


.

在HTTP协议级别,这是使用
主机:
头完成的。例如,根页面的简单GET请求可能如下所示:

GET / HTTP/1.1
Host: example.com
在这种情况下,
Host:
头告诉服务器,浏览器已转到站点
example.com
,正在从该站点查找根页面(
/
)。另一个请求可能是:

GET / HTTP/1.1
Host: example.org
如果同一个服务器同时处理
example.com
example.org
,那么HTTP服务器可以通过这种方式区分请求


在您的情况下,IIS是接收这些头并将请求定向到相应站点的组件。

如果希望单个应用程序处理同一IP上的不同域,则应检查请求上下文,例如:

string host = HttpContext.Current.Request.Url.Host;
switch (host.ToLower())
{
    case "domain1.com":
    // do something
    break;
    case "domain2.com":
    // do something
    break;
    default: //unknown domain
    // do something
    break;
}
知道您可以处理哪些主机地址,请检查它


如果要将不同的域指向同一IP和IIS上的不同网站,则应配置IIS,在这种情况下,请检查Tim的答案。

这将为您提供站点的域:

HttpContext.Current.Request.Url.Authority

或者用更合适的东西取代
。权威

我不理解。您想知道如何将iis配置为具有多个子域吗?或者这与节目有关?你查过答案了吗?