我可以从本地服务器上的active directory组检索所有用户名,但在IIS上显示异常错误

我可以从本地服务器上的active directory组检索所有用户名,但在IIS上显示异常错误,iis,permissions,active-directory,Iis,Permissions,Active Directory,我是stachoverflow的新用户,我正在为intranet开发一个web应用程序,其中它可以从active directory验证用户身份,这在IIS上运行良好,但我在从active directory组检索数据(所有用户名)时遇到了问题,active directory组在本地服务器上运行良好。 在IIS上,它给出异常错误-System.DirectoryServices.DirectoryServicesCOMException:登录失败:未知用户名或错误密码。 在IIS中,windo

我是stachoverflow的新用户,我正在为intranet开发一个web应用程序,其中它可以从active directory验证用户身份,这在IIS上运行良好,但我在从active directory组检索数据(所有用户名)时遇到了问题,active directory组在本地服务器上运行良好。 在IIS上,它给出异常错误-System.DirectoryServices.DirectoryServicesCOMException:登录失败:未知用户名或错误密码。 在IIS中,windows身份验证已启用,其他身份验证已禁用

My code is:
Web.config file:
<authentication mode="Windows">
            <forms loginUrl="~/TTracker/Login.aspx" timeout="600"></forms>
        </authentication>

<authorization>
            <deny users="?"/>
            <allow users="*" />


        </authorization>
    <identity impersonate="true" />


Code for retrieving data:

using System.DirectoryServices;
using System.DirectoryServices.AccountManagement;
using (HostingEnvironment.Impersonate())
            {
                DropDownList1.Items.Add(new ListItem("-Select-", ""));
                string grpname = "Group1";                
                PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "domain");
                GroupPrincipal grp = GroupPrincipal.FindByIdentity(ctx, IdentityType.SamAccountName, grpname);
                if (grp != null)
                {
                    foreach (Principal p in grp.GetMembers(false))
                    {
                        DropDownList1.Items.Add(p.SamAccountName + "-" + p.DisplayName);

                    }
                    grp.Dispose();
                    ctx.Dispose();
                    Console.ReadLine();
                }
                else
                {
                    Console.WriteLine("We did not find that group.");
                    Console.ReadLine();
                }
            }


this is my code for retrieving data from active directory which works fine locally but not works on IIS.

It will be great help if any one solve this issue.

Thanks in advance.
我的代码是:
Web.config文件:
用于检索数据的代码:
使用System.DirectoryServices;
使用System.DirectoryServices.AccountManagement;
使用(HostingEnvironment.Impersonate())
{
DropDownList1.Items.Add(新列表项(“-Select-”,”);
字符串grpname=“Group1”;
PrincipalContext ctx=新PrincipalContext(ContextType.Domain,“Domain”);
GroupPrincipal grp=GroupPrincipal.FindByIdentity(ctx,IdentityType.SamAccountName,grpname);
如果(grp!=null)
{
foreach(grp.GetMembers中的主体p(false))
{
DropDownList1.Items.Add(p.SamAccountName+“-”+p.DisplayName);
}
grp.Dispose();
ctx.Dispose();
Console.ReadLine();
}
其他的
{
WriteLine(“我们没有找到那个组。”);
Console.ReadLine();
}
}
这是我从active directory检索数据的代码,它在本地运行良好,但在IIS上不起作用。
如果有人能解决这个问题,那将大有裨益。
提前谢谢。

它与模拟有关

请检查以下内容:

我们可以模拟一个帐户来处理AD

ASP.NET模拟 阅读这份文件

如何:(几乎)通过C实现Active Directory中的所有功能#

你好,尼普,谢谢你的回答,但我不明白为什么只有在从active directory检索数据时才会发生这种情况,而不是在对active directory进行身份验证时发生这种情况。如果你广泛地看到Chetan,身份验证和数据检索是两件不同的事情。身份验证是可以的,但是AD有很多规则用于检索已经定义并且可以定义的数据。