2009-07-22 37 views

Trả lời

10

article này giải thích nó khá ngắn gọn:

Dưới đây là một đoạn mã từ bài viết:

IntPtr accessToken = IntPtr.Zero; 
.... 
//You have to initialize your accessToken with API calling 
.... 
WindowsIdentity identity = new WindowsIdentity(accessToken); 
WindowsImpersonationContext context = identity.Impersonate(); 
... 
// Now your code is using the new WindowsLogin and you can do what ever this login can do 
... 

//Now you can return to your current login of Windows 
context.Undo(); 
+2

Mã trong bài viết đã biến mất. –

20

Có lẽ tốt nhất và sạch nhất code mà tôi đã thấy cho đến nay là này

using (Impersonation.LogonUser(domain, username, password, logonType)) 
{ 
    // do whatever you want as this user. 
} 

Chỉ cần làm theo Github hoặc Nuget.

+1

Điều này chắc chắn là dễ thực hiện nhưng tôi không thể xác thực rằng nó đang hoạt động. Tôi làm một process.start ("cmd.exe") và quá trình vẫn hiển thị như được sở hữu bởi ID mà bắt đầu chương trình không phải là ID mạo danh. Tôi có thể bỏ lỡ điều gì? –

Các vấn đề liên quan