首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

进程间的用户权限传递解决方案

2012-03-08 
进程间的用户权限传递我有一个SYSTEM的服务S,一个系统当前登录身份运行的普通程序A,他们之间有沟通。我现在

进程间的用户权限传递
我有一个SYSTEM的服务S,一个系统当前登录身份运行的普通程序A,他们之间有沟通。

我现在想把A的SECURITY_ATTRIBUTES或者类似的信息传到S中保存下来,

这样可以为服务取得当前用户的某些信息提供方便,

比如用这个SECURITY_ATTRIBUTES创建一个线程,在线程中调用SHGetSpecialFolderPath可以获取用户相关的特殊文件夹路径。

当然可以在A中调用相应函数(SHGetSpecialFolderPath),再把获得的信息传到S中,这里我不讨论。

问:是不是只要传这个SECURITY_ATTRIBUTES,然后有什么要注意的,只拷贝内存?

[解决办法]
SECURITY_ATTRIBUTES里面有个SECURITY_DESCRIPTOR指针
而SECURITY_DESCRIPTOR里面又有几个指针,因此你的想法没什么可行性
[解决办法]
Windows Vista以后的系统服务程序与桌面程序没办法互相访问对方内存地址,共享内存可以很容易的验证这个问题;

解决服务与桌面应用程序之间的数据共享或交互,Socket是一个很好的方式。

另外你使用SHGetSpecialFolderPath获取的路径与桌面应用程序获取的路径存在差异,例如..//Localservice//与//current user//路径的差异,以及获取系统提供的几个temp路径,server与桌面应用程序会定位到不同的目录下。

热点排行