Windows安全属性的设定
来源:互联网 发布:山东师范大学网络平台 编辑:程序博客网 时间:2024/05/16 06:40
在使用CreateFileMapping,CreateEvent等API的时候,经常会遇到一个安全属性的设定,一般的程序都会设置成NULL,用系 统默认的安全属性来设定。但是在windows2003 服务程序的开发中,用系统默认的安全属性创建一个FileMapping时,即使是admin用 户也不能找开这个FileMapping,错误码5, 为了能让其它用户下运行的程序打开这个服务程序创建的FileMapping,需要作下面的设定。
设定之前先对两个安全属性相关的API进行说明。
WINADVAPI BOOL WINAPI InitializeSecurityDescriptor (PSECURITY_DESCRIPTORpSecurityDescriptor, DWORD dwRevision );
WINADVAPI BOOL WINAPI SetSecurityDescriptorDacl (PSECURITY_DESCRIPTORpSecurityDescriptor, BOOLbDaclPresent, PACL pDacl, BOOLbDaclDefaulted );
InitializeSecurityDescriptor 的API是进行安全属性描述初始化的,第一个参数pSecurityDescriptor是要进行初始化的安全属性描述,第二个参数指定分配给安全描述符的修订级别。它必须指定为SECURITY_DESCRIPTOR_REVISION。
SetSecurityDescriptorDacl 的API是对安全属性进行设定的
第一个参数:PSECURITY_DESCRIPT指向一个安全描述符
第 二个参数:bDaclPresent提示DACL是否存在,设定为真的时候,PSECURITY_DESCRIPT构造体中的 SE_DACL_PRESENT 标志会初始化(用pDacl与bDaclDefaulted),用FALSE设定时,SE_DACL_PRESENT 标志会被清除,参数pDacl与bDaclDefaulted会被无视。
第三个参数:pDacl指向ACL构造体,这个参数是空的时候,会充许任何程序访问这个对象。
第四个参数:bDaclDefaulted 指示标记,是既定的还是用户指定
想要做成一个让任何程序都能访问的共享内存,参照下面代码。
SECURITY_ATTRIBUTES sa;
SECURITY_DESCRIPTOR sd;
InitializeSecurityDescriptor(&sd,SECURITY_DESCRIPTOR_REVISION);
SetSecurityDescriptorDacl(&sd,TRUE,NULL,FALSE);
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.bInheritHandle = TRUE;
sa.lpSecurityDescriptor = &sd;
CreateFileMapping(..,&sa,...);
- Windows安全属性的设定
- Windows安全属性的设定
- Windows安全属性的设定
- windows 2003 sever 的安全设定
- 物料的属性设定
- ssh的一些安全设定
- 动态设定ITEM的属性
- 设定UISegmentControl的文字属性
- cell的一些属性设定
- Windows应用程序的框架设定
- 动态设定Spring中bean的属性
- 设定维度属性的排序方式
- Oracle EBS: 物料的属性设定
- jqgrid中内置dialog的属性设定
- Oracle EBS: 物料的属性设定
- Textfield的属性设定和键盘回收
- Microsoft Windows 下JDK 环境变量的设定
- Windows Mobile 设定TextBox的输入法状态
- LINUX目录详解
- 网站建设市场重新洗牌 一卡通引领革命潮流
- 什么是短期融资券?
- 微软操刀数字医疗
- 微软回到原点
- Windows安全属性的设定
- 五种垂直性网站最值得投资
- 辛苦是幸福的开端
- 为奥运时刻准备 中国金融机构提供电子金融服务
- 我国大多数企业已进入IT应用的发展阶段
- 身份证号码15位到18位的转换
- 西班牙电信计划增持中国网通5.74%股权
- DATAWINDOW中自动生成的SQL语句怎么where 后边是空的?不是有setFilter()了吗。
- JAVA序列化机制学习札记