我正在开发一个Web应用程序,ASP.NET,C#。用户需要使用帐户本地登录到运行该应用的计算机,我将在此示例中将其称为“独眼巨人”。我希望应用程序能够查询用户和组的本地目录,以确定用户所在的组。代码如下所示:
DirectoryEntry entry = new DirectoryEntry("WinNT://cyclops/Users", "SomeServiceAccount",
"SvcAcctP@$$word", AuthenticationTypes.Secure);
entry.RefreshCache();
// Etc.
我的两个问题是:
我的实验产生了很多错误:“无法找到组名。”,“提供程序不支持搜索...”,“服务器无法运行。”,“未知错误(0x80005004)”,等
感谢您的时间...... -jw
答案 0 :(得分:1)
WinNT需要以下格式
WinNT://<domain/server>/<object name>,<object class>
要获取给定用户的群组,请使用
using (DirectoryEntry user = new DirectoryEntry("WinNT://./UserAccount,user"))
{
foreach(object group in (IEnumerable)user.Invoke("Groups",null))
{
using(DirectoryEntry g = new DirectoryEntry(group))
{
Response.Write(g.Name);
}
}
}
其中
要获取特定群组中的用户,请使用
using (DirectoryEntry entry = new DirectoryEntry("WinNT://./Users,group"))
{
foreach (object member in (IEnumerable)entry.Invoke("Members"))
{
using(DirectoryEntry m = new DirectoryEntry(member))
{
Response.Write(m.Name);
}
}
}
其中