繁体   English   中英

从ASP.NET搜索Active Directory

[英]Searching Active Directory from ASP.NET

我有一个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上运行良好。 最近我将网站移动到一个新的Windows Server 2008与IIS7.5我添加了应用程序到iis和conect网站,我收到此错误:

(&(objectCategory=person)(sAMAccountName=))搜索过滤器无效。 描述:执行当前Web请求期间发生未处理的异常。 请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

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

当我通过Visual Studio运行我的网站时,它的工作原理。 问题只来自IIS。

有人能帮我吗?

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

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

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

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

暂无
暂无

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

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