最近遇到这样一样个情况:客户端环境:Windows XP+SP3/ VS2008/ C#/ Framework 2.0
服务端环境:Windows 2003 Server+SP2/ Framework 2.0服务端目录:TestFolder(注意:该目录没有设置共享)代称:C组件(C++开发的组件)需求:C组件接收一个文件,通过多线程对该文件进行读取操作。由于指定的文件位于TestFolder中,所以通过调用Windows API的LogonUser函数模拟用户登录。登录所用信息是服务端管理员的用户名和密码。问题:C组件只能读取一部分数据。从服务器的审核日志看,开始有服务器的管理员用户登录,审核通过,这说明模拟用户正常,但接下来的几个审核都失败了,查看登录信息变成客户端的用户名和密码了,所以审核失败。分析可能是当前线程使用了模拟用户访问文件,但其它线程未使用,通过设置AppDomain.CurrentDomain.SetThreadPrincipal方法据说可以使应用程序域内的所有线程都使用同一个模拟用户,但依然没有效果,也许是因为C组件是非托管资源或者其它什么原因。请各位指点迷津,不胜感激!