簡體   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