所以我有一个ASP DOT NET Web服务,需要模拟Windows Authenticated用户。此Web服务调用Com Api来执行数据库操作。
似乎模仿不会持续到Com Api。这是因为Com DLL被加载到自己的内存空间并被视为一个单独的进程吗?还有什么方法可以解决这个问题,并将模仿持续到Com Api Dll?
此时无法将Com Api的功能移动到点网代码中。 Com Api也是用C ++编写的。
答案 0 :(得分:0)
所以我解决了这个问题。 Com对象被加载到它自己的线程中,并且我按照线程级别的方式设置了Impersonation。由于我控制了Com对象,因此添加了Windows函数CoImpersonateClient();在任何需要冒充的代码之前就行了。
以下是我最终找到解决问题的文章:
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q325791