C# asp.net中的模拟未与com对象共享
因此,我有一个ASP.NET web服务,它需要模拟经过Windows身份验证的用户。此web服务调用Com Api来执行数据库操作 似乎模拟不会持续存在于Com Api中。这是因为Com DLL被加载到它自己的内存空间中,并被视为一个单独的进程吗?还有什么方法可以处理这个问题并将模拟持久化到Com Api Dll中C# asp.net中的模拟未与com对象共享,c#,asp.net,c++,api,com,C#,Asp.net,C++,Api,Com,因此,我有一个ASP.NET web服务,它需要模拟经过Windows身份验证的用户。此web服务调用Com Api来执行数据库操作 似乎模拟不会持续存在于Com Api中。这是因为Com DLL被加载到它自己的内存空间中,并被视为一个单独的进程吗?还有什么方法可以处理这个问题并将模拟持久化到Com Api Dll中 此时,将Com Api的功能移动到dot net代码中不是一个选项。COM API也是用C++编写的。< /P> < P>,所以我解决了这个问题。Com对象被加载到它自己的线程中,
此时,将Com Api的功能移动到dot net代码中不是一个选项。COM API也是用C++编写的。< /P> < P>,所以我解决了这个问题。Com对象被加载到它自己的线程中,模拟被设置为线程级。因为我已经控制了Com对象,添加了Windows函数CoImpersonaeClient;在任何需要模拟的代码出现之前 以下是我最终发现的解决问题的文章:
这些组件之间的服务器体系结构是什么。如果它们分布在不同的服务器上,则可能是您受到了“双跳”效应的影响。IIS服务器和Com Api都在同一台服务器上。那篇文章说模拟是一个操作系统级别的命令,这对我来说应该可以正常工作。此外,Com Api还与Sql Server通信,在本测试案例中,Sql Server也在同一台机器上运行。我也不完全了解模拟发生在什么级别。我注意到每个进程都由一个用户拥有。是这个过程被模仿了吗?