从ASP.NET web应用访问Active Directory时出现权限问题?
我刚加入一家公司,支持一个无人知晓的网络应用。所有曾经认识的人都走了 该应用程序正在使用一个dll(我只有二进制文件),该dll用于获取用户所属的Active Directory组的字符串列表。该代码在生产环境中以及在VS2005 IDE中以交互方式运行时有效,但在IIS中本地运行时无效 代码是这样的。它在第127行爆炸:从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
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下运行,密码对我来说是隐藏的。如果我尝试切换回使用此帐户运行,是否需要提供密码?在我看来,我不太可能做到这一点,但我认为我在过去尝试切换回时遇到了一个问题,我现在有点了解。当您切换用户时,请确保您在最顶层进行切换,并让它波及到所有子目录。只有当您在本地主机上托管多个应用程序时,此注释才相关。我知道这已经有一段时间了,但这些答案中有没有提供您的解决方案?还是你走了其他路线?