【问题标题】:Active Directory using secured Global Catalog failed使用安全全局目录的 Active Directory 失败
【发布时间】:2012-05-18 19:26:15
【问题描述】:

首先让我说我对 Active Directory 还很陌生,而且我不是处理服务器配置的人(如果这确实是与服务器相关的问题)。但是,如果得到适当的建议,我可以将这些建议转达给正确的人。

我们正在运行一个大型 ASP.NET C# .NET 3.5 应用程序。

这是我们遇到的场景:

我创建了一个测试页面来测试我们的全局目录 AD 搜索。

从测试服务器 1 发生的情况如下:

使用 GC://TEST.COM:3268(不安全)-> 出色的性能。

使用 G:C//TEST.COM:3269(安全)-> 出色的性能

从测试服务器 2:

使用 GC://TEST.COM:3268(不安全)-> 出色的性能。

使用 G:C//TEST.COM:3269(安全)-> 失败。

我看到的唯一异常是:异常:“服务器无法运行”

我认为这不是代码问题,因为两个测试服务器都运行相同的代码。只有当我们尝试从测试服务器 2 连接到 GC 的安全端口时才会遇到问题。

这是我尝试在服务器上运行它时的异常信息,我让它将异常转储到日志表中:

Directory Services Com 异常(异常消息):服务器无法运行。 错误代码:-2147016646 堆栈跟踪:

在 System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)

在 System.DirectoryServices.DirectoryEntry.Bind() 在 System.DirectoryServices.DirectoryEntry.get_AdsObject()

在 System.DirectoryServices.DirectorySearcher.FindAll(Boolean findMoreThanOne)

在 System.DirectoryServices.DirectorySearcher.FindOne()at TestClass.GetUserDomainTest(String UserName) in

testclass.aspx.cs:155 行

就像我说的,我不认为这是代码问题,但如果可能有帮助,我已附上代码:

private string GetUserDomain2(string UserName) 
{ 
    string domainName = String.Empty; 
    try 
    { 
       // This is Test page code so we can change the values as we want 
        DirectoryEntry entry = new DirectoryEntry(txtGCPath.Text) 
        entry.Username = txtGCUserID.Text; 
        entry.Password = txtGCPassword.Text; 
        // Set SSL or leave default 
        if (cb1.Checked == true) 
        { 
            entry.AuthenticationType = AuthenticationTypes.SecureSocketsLayer; 
        } 

        DirectorySearcher search = new DirectorySearcher(); 
        search.SearchRoot = entry; 
        search.SearchScope = SearchScope.Subtree; 
        search.Filter = string.Format(txtGCFilter.Text, UserName); 


        SearchResult results = search.FindOne(); // CRASHES HERE 
      // Parsing code removed. 
      return domainName; 
   } 

【问题讨论】:

  • 第二台服务器是否有有效的证书? AD 是否还在监听 3269?
  • @Mohammed 你有没有找到这个的根本原因?我也有同样的问题。

标签: active-directory


【解决方案1】:

您不需要 SSL,并且默认情况下未启用 SSL。您可以使用 Kerberos 安全功能对流量进行完全加密。这就是我对 SASL 的 QOP auth-conf 所做的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-09
    • 2016-08-08
    相关资源
    最近更新 更多