gpt4 book ai didi

c# - 使用 WinNT 连接到远程计算机 ://provider and Directory Services Ignores username/password

转载 作者:行者123 更新时间:2023-11-30 18:44:21 24 4
gpt4 key购买 nike

我正在使用 DirectoryServices 和 WinNT://提供程序连接到远程计算机。然后我检查一些组成员信息,并可能在指定的本地组中添加或删除域用户。

我已经能够使用 vb.net 控制台应用程序并在与我的本地机器或与我登录的帐户具有管理权限的任何机器通信时顺利地运行所有这些代码。

代码:

    string strUserPath = "WinNT://DomainName/someuser,user";
DirectoryEntry deComputer = new DirectoryEntry("WinNT://" + Computername + ",computer");
deComputer.RefreshCache();
DirectoryEntry deGroup = deComputer.Children.Find("administrators", "group");

IEnumerable members = deGroup.Invoke("members", null);
List<DirectoryEntry> r = new List<DirectoryEntry>();

foreach (object o in members)
{
DirectoryEntry deMember = new DirectoryEntry(o);

r.Add(deMember);
}

deGroup.Invoke("Add", strUserPath);
deGroup.CommitChanges();

deGroup.Invoke("Remove", strUserPath);
deGroup.CommitChanges();

因此我将代码移至 ASP.Net 网络应用程序,该应用程序通过 web.config 的模拟部分模拟服务帐户。我模拟的帐户在任何工作站上都​​没有管理员权限,因此我将用户名/密码输入到计算机条目的构造函数中,如下所示:

DirectoryEntry deComputer = new DirectoryEntry("WinNT://" + Computername + ",computer", username, password);

用户名是在每个工作站上具有本地管理员权限的域帐户的用户名。如果我查看生成的 deComputer 对象的用户名属性,我可以看到用户名与我输入的匹配。此外,如果我输入无效密码,它会引发错误,因此它以某种方式进行身份验证。

但是,如果我现在尝试从远程工作站添加或删除用户,我会收到一般访问被拒绝的错误。如果我在该工作站上添加 ASP.Net 作为本地管理员使用的服务帐户,它将毫无问题地添加和删除。

所以接下来我尝试使用 LogonAPI(advapi32.dll ->LogonUser 调用)作为所有工作站上的本地管理员用户帐户登录,模拟生成的 WindowsIdentitiy 并尝试仅运行原始的 deComputer 实例化。当我这样做时,每个属性(Path 除外)都会返回一个 OLE 异常...

我完全不知道接下来要尝试什么。任何帮助将不胜感激。

--解决方法--

为了解决这个问题,我们创建了一个在本地管理员帐户下运行的 Windows 服务,因此在运行代码时没有任何问题。我们将所有更新推送到 SQL 数据库中的一个表,然后该服务会提取并处理它们。但是,我仍然很想知道为什么这不起作用,直接从网站推送更新会很好。

最佳答案

您是否尝试在用户名和密码之后使用 AuthenticationTypes.Secure 作为 DirectoryEntry 的附加参数?

顺便说一句,如果你想连接到远程计算机,你不应该使用 LogonUser。正确的 API 是 WNetAddConnection2(参见 http://msdn.microsoft.com/en-us/library/aa385413.aspx)或 NetUseAdd(参见 http://msdn.microsoft.com/en-us/library/aa370645.aspx)

关于c# - 使用 WinNT 连接到远程计算机 ://provider and Directory Services Ignores username/password,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3014828/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com