Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从ASP.NET web应用访问Active Directory时出现权限问题?_Asp.net_Visual Studio 2005_Active Directory_Windows Xp_Iis 5 - Fatal编程技术网

从ASP.NET web应用访问Active Directory时出现权限问题?

从ASP.NET web应用访问Active Directory时出现权限问题?,asp.net,visual-studio-2005,active-directory,windows-xp,iis-5,Asp.net,Visual Studio 2005,Active Directory,Windows Xp,Iis 5,我刚加入一家公司,支持一个无人知晓的网络应用。所有曾经认识的人都走了 该应用程序正在使用一个dll(我只有二进制文件),该dll用于获取用户所属的Active Directory组的字符串列表。该代码在生产环境中以及在VS2005 IDE中以交互方式运行时有效,但在IIS中本地运行时无效 代码是这样的。它在第127行爆炸: Line 127: userGroups = new FW.DirectoryHelper(username).getGroups(); Line 12

我刚加入一家公司,支持一个无人知晓的网络应用。所有曾经认识的人都走了

该应用程序正在使用一个dll(我只有二进制文件),该dll用于获取用户所属的Active Directory组的字符串列表。该代码在生产环境中以及在VS2005 IDE中以交互方式运行时有效,但在IIS中本地运行时无效

代码是这样的。它在第127行爆炸:

Line 127:            userGroups = new FW.DirectoryHelper(username).getGroups();
Line 128:            List<string> roles = new List<string>();
Line 129:            List<string> groups = new List<string>();
第127行:userGroups=new FW.DirectoryHelper(username.getGroups();
第128行:列表角色=新列表();
第129行:列表组=新列表();
出现此错误时:

获取组信息时出错。指定的域不存在或无法联系。

这看起来像是ASPNET帐户无法访问Active Directory的某种问题,但为什么它可以交互工作,但不能在IIS下工作?这是因为当我以交互方式运行时,我是使用自己的凭据而不是ASPNET帐户运行的吗?为什么它会在其他(如UAT)IIS服务器上运行,包括生产服务器而不是本地服务器

是否需要进行一些本地IIS配置或fodler安全配置才能使其在本地工作

二进制文件肯定在我公司的其他地方使用;我认为这是一个共享的it工具,没有人会支持或试图找到一个谁将证明是困难的人

我的本地IIS配置为打开Windows身份验证并关闭匿名身份验证。我还尝试了Windows身份验证和匿名…

这是IIS6还是7

如果是II6,请确保应用程序池标识设置为域帐户的标识

如果IIS7,请确保在基本设置下将其设置为域帐户的设置


希望这会有所帮助。

一个快速解决方法是设置本地IIS的身份,以使用您的登录凭据而不是默认的系统帐户。

您的问题与我最近回答的一个问题非常相似,他们也在使用IIS 5.1


在我的回答中,我提供了两种可能的解决方案,您可能希望使用ASP.Net模拟。

代码使用ldap的windows登录凭据,无论哪台电脑运行该程序。尝试将iis设置为匿名访问,并为其提供一个具有ldap读取权限的帐户(可能是虚拟帐户)。在您的web.config文件中,您将要设置此匿名帐户,如下所示:

<system.web>
<identity userName="DOMAIN\username" password="myPW"/>
</system.web>


Windows XP SP2上的IIS 5.1。不确定此设置在哪里。在这个公司环境中,升级IIS可能是一个问题。IIS的生产版本是什么?嗯。这一方面解决了这个问题,但可能已经足够好了…我的IIS当前在IUSR_u下运行,密码对我来说是隐藏的。如果我尝试切换回使用此帐户运行,是否需要提供密码?在我看来,我不太可能做到这一点,但我认为我在过去尝试切换回时遇到了一个问题,我现在有点了解。当您切换用户时,请确保您在最顶层进行切换,并让它波及到所有子目录。只有当您在本地主机上托管多个应用程序时,此注释才相关。我知道这已经有一段时间了,但这些答案中有没有提供您的解决方案?还是你走了其他路线?