簡體   English   中英

模擬MFC C ++

[英]Impersonation MFC C++

我想模擬Windows中的其他用戶。 例如:我創建了一個僅對用戶A和管理員具有權限的目錄,當用用戶B登錄並運行.exe時,我要模擬用戶A以具有在該特定目錄中進行編輯/刪除/插入的權限。

我發現了這一點: http : //msdn.microsoft.com/en-us/library/aa374731(VS.85).aspx

首先,請查看有關Windows用戶模擬的本文:

http://www.codeproject.com/KB/system/UserImpersonation.aspx

它應該給您一個起點。 如果您需要更多控制權,則需要研究訪問令牌。

如果要訪問用戶A的文件夾和用戶B的文件夾,則只需要以管理員具有進入所有文件夾的權限的方式來設置文件夾權限。 通常,機器管理員已經擁有這些權利。 我在這里假設是在談論普通的Windows用戶帳戶和普通的計算機/域管理員帳戶。

如果您想成為用戶A,則意味着您需要用戶A的有效權限才能成為該用戶。 模擬並不簡單(根據我的嘗試),您需要通過域控制器請求訪問權限,並協商您是用戶B,並且您有權模擬用戶A,通常這是由用戶A和用戶B共享完成的以及協商憑證句柄和安全上下文。 我懷疑這是您要遵循的過程類型。

一些有用的功能包括:

為了設置上下文,使用了這些上下文,並且在用戶A和用戶B之間來回傳遞數據以協商模擬

AcquireCredentialsHandle()
InitializeSecurityContext()
AcceptSecurityContext()
CompleteAuthToken()

一旦協商完成並創建了安全上下文,就可以使用它們來啟動和停止模擬。

ImpersonateSecurityContext()
RevertContext()

我不知道有沒有其他方法可以在沒有相關用戶的積極參與或以該用戶身份主動登錄的情況下模擬用戶。

希望這會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM