asp.net中的模拟未与com对象共享

时间:2010-08-18 20:25:22

标签: c# asp.net c++ api com

所以我有一个ASP DOT NET Web服务,需要模拟Windows Authenticated用户。此Web服务调用Com Api来执行数据库操作。

似乎模仿不会持续到Com Api。这是因为Com DLL被加载到自己的内存空间并被视为一个单独的进程吗?还有什么方法可以解决这个问题,并将模仿持续到Com Api Dll?

此时无法将Com Api的功能移动到点网代码中。 Com Api也是用C ++编写的。

1 个答案:

答案 0 :(得分:0)

所以我解决了这个问题。 Com对象被加载到它自己的线程中,并且我按照线程级别的方式设置了Impersonation。由于我控制了Com对象,因此添加了Windows函数CoImpersonateClient();在任何需要冒充的代码之前就行了。

以下是我最终找到解决问题的文章:

http://support.microsoft.com/default.aspx?scid=kb;en-us;Q325791