如何更改用户密码(2).txt

来自「c_c++技巧集」· 文本 代码 · 共 22 行

TXT
22
字号
作者:wgenry
email: wgenry@sina.com
日期:2000-8-24 12:09:36
在NT/2K中,如果一个进程需要与SAM交互,则需要通过pipe\samr Pipe进行,同时这个连接不会释放,直到这个进程关闭,当用户1更改密码之后,如果用户2需要更改密码,这这个连接对用户2不可用,在后来的补丁中,好象修正了这个问题,但是Sam允许的连接数目是有限的,nt +sp6 2048 如果 你想你的机器non stop的话
可以试试下面的做法
     // Get current security token 
     hToken1 = OpenThreadToken(GetCurrentThread(),
                               TOKEN_READ | OKEN_IMPERSONATE,
                               TRUE,...);
 
      hToken2 = LogonUser(....);   // Obtain security token
                            
    // for some user
     ImpersonateLoggedOnUser(hToken2, ...);
     NetUserAdd();  // At this point NetAPI is alway called
                    // in the same security context
     ImpersonateLoggedOnUser(hToken1, ...);
     CloseHandle (hToken1);
     CloseHandle (hToken2);


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?