C# windows域中的模拟
我正在尝试编写一个模拟控件,我们的员工可以在我们的应用程序中以不同的域用户身份登录,请参见下面的我的代码(几乎完整的):C# windows域中的模拟,c#,windows,winforms,dns,impersonation,C#,Windows,Winforms,Dns,Impersonation,我正在尝试编写一个模拟控件,我们的员工可以在我们的应用程序中以不同的域用户身份登录,请参见下面的我的代码(几乎完整的): 安全令牌句柄: public sealed class SafeTokenHandle : SafeHandleZeroOrMinusOneIsInvalid { private SafeTokenHandle() : base(true) { } [DllImport("kernel32.dll", SetLastError = true)] [R
安全令牌句柄
:
public sealed class SafeTokenHandle : SafeHandleZeroOrMinusOneIsInvalid
{
private SafeTokenHandle() : base(true) { }
[DllImport("kernel32.dll", SetLastError = true)]
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
[SuppressUnmanagedCodeSecurity]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool CloseHandle(IntPtr handle);
protected override bool ReleaseHandle()
{
return CloseHandle(handle);
}
}
现在我总是遇到Win32错误“用户名或密码错误”。我做错什么了吗?也许这门课对你有帮助
在调用方法LogonUser之前,您需要指定您的用户、域、密码
string user = "MyUserName" ;
string domain = "MyDomain";
string Password = "MyPassword";
//Call LogonUser to obtain a handle to an access token.
bool returnValue = LogonUser(user, domain, password,
LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT,
out safeTokenHandle);
“几乎完整的MSDN文章副本”-哦,当然。你不会碰巧有某篇文章的链接吧?其中有很多,我们可能不知道你指的是哪一个。很抱歉,编辑了我的帖子。
string user = "MyUserName" ;
string domain = "MyDomain";
string Password = "MyPassword";
//Call LogonUser to obtain a handle to an access token.
bool returnValue = LogonUser(user, domain, password,
LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT,
out safeTokenHandle);