问题是:
我的程序需要写在ISAPI里面或者是用WebService的方式对外提供接口,而客户端访问我的程序的时候,使用的是IXXX_USER(有点忘记了)——通过IIS来的请求都是用这个用户,所以在我的ISAPI或者我的WebService的COM里面的很多代码执行起来就有问题,例如GetEnvironmentVariable等等函数。
有什么好的方法能解决掉这个问题?
谢谢

解决方案 »

  1.   

    在本地帐户中添加一个新用户帐户(如UserA), 在ISAPI中验证用户登录后用LogonUser获得UserA的访问令牌,再用ImpersonateLoggedOnUser以UserA的身份访问受限资源, 访问结束后用RevertToSelf还原回原始状态.注: Win2003Srv下,调用ISAPI时的用户不是IUSR_xxx, 而是Network Service, 这时用LogonUser可能会失败, 此时应先通过调用ServerSupportFunction的HSE_REQ_GET_IMPERSONATION_TOKEN功能, 取得IUSR_xxx的权限后, 然后再用上面的方法设置.