繁体   English   中英

获取IIS网站的域名

[英]Getting IIS Websites' Domain names

我创建了一个Web应用程序,以列出IIS上的所有网站及其名称,端口和物理路径。 它也应该获取IIS网站域名。 该应用程序安装在IIS上,除返回域名外,所有功能均正常运行。

我编写了以下代码,并为所有网站返回了“ localhost:8183”。 8183是应用程序的端口本身。

  Request.Url.Scheme + "://" + Request.Url.Authority +
    Request.ApplicationPath.TrimEnd('/') + "/";here

然后我尝试了这个,它只返回了“ localhost”而不是域名。

  HttpContext.Current.Request.Url.Host;

我很想知道我要去哪里错了。 请让我知道是否需要任何进一步的信息。

Web服务器实际上并不知道它可以服务的域。 它知道该请求的线程中的请求标头中的域是什么,但是您可以设置要指向任何服务器IP地址的任何域,服务器将接受它。

如果已按域设置绑定(使用服务器名称指示),则可以从Microsoft.Web.Administration(对于ServerManager.Sites中的每个站点,对于site.bindings中的每个Binding,如果Binding.Protocol)中的对象获取信息。 = http或https以及Binding.Host!=“”,然后写出Binding.Host),但这不会告诉您任何不在绑定中的域。

如果使用请求对象,它将仅提供有关运行代码的网站的详细信息。 您需要使用目录服务连接到IIS,并且可以工作。

[来自已经回答的问题]-这是一篇文章,说明如何使用System.DirectoryServices命名空间以及IIS 7引入的Microsoft.Web.Administration命名空间中的类来完成此操作。

您可以使用以下代码获取当前服务器的域名:

System.Net.NetworkInformation.IPGlobalProperties.GetIPGlobalProperties().DomainName

或者您可以使用以下代码获取当前用户的域:

System.Security.Principal.WindowsIdentity.GetCurrent().User. (string value)

然后可以修剪它。

快乐的编码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM