在模仿具有特权的用户时解锁用户

时间:2016-03-06 14:20:22

标签: c# windows impersonation

我正在尝试解锁用户,同时冒充活动目录中具有权限的用户来解锁特定群组中的用户。

我正在使用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);
}

有人能认出这个问题吗?

0 个答案:

没有答案