我正在尝试解锁用户,同时冒充活动目录中具有权限的用户来解锁特定群组中的用户。
我正在使用LogonUser
中的advapi32.dll
来登录用户,在模仿并使用{}后我正在打印WindowsIdentity.GetCurrent().Name
- 并且它没有显示计算机,它显示我试图模仿的用户名 - 意味着模仿成功(?)
然后我在UnlockAccount
中使用UserPrincipal
方法呈现我要解锁的用户 - 我得到一个奇怪的错误 - “操作错误发生” - 没有内部异常可以帮我追踪真正的错误...
我根据我在其中一个问题中看到的解决方案创建了一个类,它使用logonuser方法管理模拟以及它需要的东西。主要代码如下:
using (Impersonation mp = Impersonation.LogonUser(username, domain, pass,
LogonType.Network))
{
WindowsIdentity identity = new WindowsIdentity(Impersonation.UserToken);
WindowsImpersonationContext context = identity.Impersonate();
Console.WriteLine("Logged in with : " +
WindowsIdentity.GetCurrrent().Name);
// To do is the method that unlocks the user - get as parameter
// the UserPrincipal Object to unlock
bSuccess = toDo(uspUsserPrinc);
}
有人能认出这个问题吗?