2K/XP/2K3切换用户不 带特权

作者:陆麟
转载请征得作者同意.
2004.03.08



网上的朋友对于NTFS和AUTHENTICATION已经都比较了解了. 大家都知道, 登录USER需要SE_TCB_NAME特权. 这个TCB特权是个麻烦. 不是所有人都有办法搞到的. 作INSTALL时, 有很多情况会要求USER登录为管理员. 为了变换一下用户而要求USER重新启动机器? 嘿嘿, 您老土了巴. INSPRO提供您一个DLL. 可以把当前线程切换为您希望的USER. 当然, 你必须有切换后用户的帐号密码.
下面给出的是DLL的接口.

HANDLE
__stdcall
SwitchUserTo(
    IN char *Username,
    IN char *Password,
    IN char *Reserved,
    OUT BOOL *pfSucc);
此调用将当前线程身份切换为指定帐号. 参数简洁明了. 不用解释了巴. :)
如果成功, *pfSucc被填写为TRUE. 失败的话*pfSucc为FALSE.
返回指为原先身份句柄.

BOOLEAN
__stdcall
RevertUser(
    HANDLE h);
此调用恢复原先的身份. HANDLE为SwitchUserTo返回指. 调用后当前线程身份恢复.

下载库到这里.