我尝试使用ASP.NET
获取C#
应用程序的客户端计算机连接到的域控制器。
该应用程序是一个永远不会暴露给Internet的Intranet应用程序,每个使用该应用程序的用户都必须通过Windows进行身份验证。因此,这意味着用户将始终连接到公司网络中的域控制器。
我已尝试使用以下代码,但它返回了IIS服务器所连接的域控制器:
using System.DirectoryServices;
public static string GetDC()
{
DirectoryEntry Entry = new DirectoryEntry("LDAP://rootDSE");
return Entry.Properties["dnsHostname"].Value.ToString();
}
我已经阅读了其他几个关于这个问题的问题,这些问题似乎都产生了IIS服务器域控制器。
我的问题是,是否可以获取客户端连接的域控制器,如果是,如何获取?
答案 0 :(得分:1)
有关Active Directory身份验证的一些事项:
如果您想详细了解身份验证在AD中的确切运作方式,请查看此处:https://technet.microsoft.com/en-us/library/cc780332(v=ws.10).aspx
现在,如果用户位于不同的域中,那么您可以从用户的用户名获取域名并使用该域名执行AD查找。
string userNameWithDomain = HttpContext.Current.User.Identity.Name; // returns SOMEDOMAIN\USERNAME
你拆分'\'并取第一个元素。