【问题标题】:Searching Active Directory from ASP.NET从 ASP.NET 搜索 Active Directory
【发布时间】:2013-02-14 17:59:41
【问题描述】:

我有一个 asp.net 网站,它使用此代码在 Active Directory 中搜索用户详细信息:

public static SearchResult GetUserProfileFromAD(string username)
{
    DirectorySearcher searcher = new DirectorySearcher("(&(objectCategory=person)(sAMAccountName=" + username + "))");
    return searcher.FindOne();
}

该网站在 Windows Server 2003 和 IIS5 上运行良好。 最近我将网站移动到带有 IIS7.5 的新 Windows Server 2008 我将应用程序添加到 iis 并连接网站,我收到此错误:

(&(objectCategory=person)(sAMAccountName=)) 搜索过滤器是 无效的。描述:在执行过程中发生了未处理的异常 执行当前的 Web 请求。请查看堆栈跟踪 有关错误及其起源的更多信息 代码。

异常详细信息:System.ArgumentException: (&(objectCategory=person)(sAMAccountName=)) 搜索过滤器无效。

当我通过 Visual Studio 运行我的网站时,它可以工作。问题仅来自 IIS。

有人可以帮我吗?

【问题讨论】:

    标签: asp.net .net exception search iis


    【解决方案1】:

    您的“用户名”变量为空,导致您的过滤器以等号终止(实际上,这是无效的)如果不了解您的设置,很难说。但这听起来很明显,您没有为新服务器上的网站正确设置身份验证 - 导致您必须填写用户名的任何例程都没有得到任何返回。

    【讨论】:

      【解决方案2】:

      错误显然是因为“用户名”是一个空字符串。这很可能是因为您的用户正在匿名登录您的网站。请确保在 IIS 中禁用匿名访问。

      但是,如果您能显示调用GetUserProfileFromAD 的代码将会很有帮助。

      【讨论】:

        【解决方案3】:

        在我看来,变量用户名没有被填充,如果你说你将它移动到 IIS 尝试再次检查安全选项,可能还没有配置 Windows 身份验证。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-07-02
          • 2010-11-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多