我想在同一个进程内采用多线程方法访问局域网上面只有特定用户才能访问的文件。我想应该是可以实现的,因为我看CreateThread的第一项参数LPSECURITY_ATTRIBUTES ,不过我搜了一下网上的各种多线程编程,几乎所有人都没有用过此项参数。
附件为我自已捣鼓的试验程序。 

解决方案 »

  1.   

    创建线程后自己更改 Token  用SetTokenInformation
      

  2.   

    abomber2:
    能详细说一下么?
      

  3.   

    线程无法改变自己的帐户身份,但是可以通过切换安全令牌来模拟其他用户,用ImpersonateLoggedOnUser来执行这种切换。
    但执行这个API是需要前提条件的,比如:
    模拟的令牌必须具备 TOKEN_QUERY 和 TOKEN_IMPERSONATE 的访问权限;
    获取这个令牌可能也需要其他帐户的密码;
    如果有必要,还可能需要修改帐户SID的ACL。
      

  4.   

    我找到一个,试了一下,效果还可以,在线程中先LogonUser,再ImpersonateLoggedOnUser就可以了。
    参见:http://topic.csdn.net/t/20020916/10/1026532.html