安全全局函数
这些函数支持修改 SID 和 ACL 对象。
重要
下表中列出的函数不能在 Windows 运行时执行的应用程序中使用。
名称 | 描述 |
---|---|
AtlGetDacl | 调用此函数可检索指定对象的自由访问控制列表 (DACL) 信息。 |
AtlSetDacl | 调用此函数可设置指定对象的自由访问控制列表 (DACL) 信息。 |
AtlGetGroupSid | 调用此函数可检索对象的组安全标识符 (SID)。 |
AtlSetGroupSid | 调用此函数可设置对象的组安全标识符 (SID)。 |
AtlGetOwnerSid | 调用此函数可检索对象的所有者安全标识符 (SID)。 |
AtlSetOwnerSid | 调用此函数可设置对象的所有者安全标识符 (SID)。 |
AtlGetSacl | 调用此函数可检索指定对象的系统访问控制列表 (SACL) 信息。 |
AtlSetSacl | 调用此函数可设置指定对象的系统访问控制列表 (SACL) 信息。 |
AtlGetSecurityDescriptor | 调用此函数可检索给定对象的安全说明符。 |
要求
标头: atlsecurity.h
AtlGetDacl
调用此函数可检索指定对象的自由访问控制列表 (DACL) 信息。
重要
此函数不能用于在 Windows 运行时中执行的应用程序。
inline bool AtlGetDacl(
HANDLE hObject,
SE_OBJECT_TYPE ObjectType,
CDacl* pDacl) throw();
参数
hObject
要从中检索安全信息的对象的句柄。
ObjectType
指定 SE_OBJECT_TYPE 枚举中的一个值,该值指示 hObject 参数标识的对象的类型。
pDacl
指向将包含检索的安全信息的 DACL 对象的指针。
返回值
如果成功,则返回 true;如果失败,则返回 false。
备注
在调试版本中,如果 hObject 或 pDacl 无效,将发生断言错误。
AtlSetDacl
调用此函数可设置指定对象的自由访问控制列表 (DACL) 信息。
重要
此函数不能用于在 Windows 运行时中执行的应用程序。
inline bool AtlSetDacl(
HANDLE hObject,
SE_OBJECT_TYPE ObjectType,
const CDacl& rDacl,
DWORD dwInheritanceFlowControl = 0) throw(...);
参数
hObject
要为其设置安全信息的对象的句柄。
ObjectType
指定 SE_OBJECT_TYPE 枚举中的一个值,该值指示 hObject 参数标识的对象的类型。
rDacl
包含新安全信息的 DACL。
dwInheritanceFlowControl
继承流控制。 此值可以是 0(默认)、PROTECTED_DACL_SECURITY_INFORMATION 或UNPROTECTED_DACL_SECURITY_INFORMATION。
返回值
如果成功,则返回 true;如果失败,则返回 false。
注解
在调试版本中,如果 hObject 无效,或者 dwInheritanceFlowControl 不是三个允许值之一,则会发生断言错误。
要求
标头: atlsecurity.h
AtlGetGroupSid
调用此函数可检索对象的组安全标识符 (SID)。
重要
此函数不能用于在 Windows 运行时中执行的应用程序。
inline bool AtlGetGroupSid(
HANDLE hObject,
SE_OBJECT_TYPE ObjectType,
CSid* pSid) throw(...);
参数
hObject
要从中检索安全信息的对象的句柄。
ObjectType
指定 SE_OBJECT_TYPE 枚举中的一个值,该值指示 hObject 参数标识的对象的类型。
pSid
指向将包含新安全信息的 CSid
对象的指针。
返回值
如果成功,则返回 true;如果失败,则返回 false。
要求
标头: atlsecurity.h
AtlSetGroupSid
调用此函数可设置对象的组安全标识符 (SID)。
重要
此函数不能用于在 Windows 运行时中执行的应用程序。
inline bool AtlSetGroupSid(
HANDLE hObject,
SE_OBJECT_TYPE ObjectType,
const CSid& rSid) throw(...);
参数
hObject
要为其设置安全信息的对象的句柄。
ObjectType
指定 SE_OBJECT_TYPE 枚举中的一个值,该值指示 hObject 参数标识的对象的类型。
rSid
包含新安全信息的 CSid
对象。
返回值
如果成功,则返回 true;如果失败,则返回 false。
要求
标头: atlsecurity.h
AtlGetOwnerSid
调用此函数可检索对象的所有者安全标识符 (SID)。
重要
此函数不能用于在 Windows 运行时中执行的应用程序。
inline bool AtlGetOwnerSid(
HANDLE hObject,
SE_OBJECT_TYPE ObjectType,
CSid* pSid) throw(...);
参数
hObject
要从中检索安全信息的对象的句柄。
ObjectType
指定 SE_OBJECT_TYPE 枚举中的一个值,该值指示 hObject 参数标识的对象的类型。
pSid
指向将包含新安全信息的 CSid
对象的指针。
返回值
如果成功,则返回 true;如果失败,则返回 false。
要求
标头: atlsecurity.h
AtlSetOwnerSid
调用此函数可设置对象的所有者安全标识符 (SID)。
重要
此函数不能用于在 Windows 运行时中执行的应用程序。
inline bool AtlSetOwnerSid(
HANDLE hObject,
SE_OBJECT_TYPE ObjectType,
const CSid& rSid) throw(...);
参数
hObject
要为其设置安全信息的对象的句柄。
ObjectType
指定 SE_OBJECT_TYPE 枚举中的一个值,该值指示 hObject 参数标识的对象的类型。
rSid
包含新安全信息的 CSid
对象。
返回值
如果成功,则返回 true;如果失败,则返回 false。
要求
标头: atlsecurity.h
AtlGetSacl
调用此函数可检索指定对象的系统访问控制列表 (SACL) 信息。
重要
此函数不能用于在 Windows 运行时中执行的应用程序。
inline bool AtlGetSacl(
HANDLE hObject,
SE_OBJECT_TYPE ObjectType,
CSacl* pSacl,
bool bRequestNeededPrivileges = true) throw(...);
参数
hObject
要从中检索安全信息的对象的句柄。
ObjectType
指定 SE_OBJECT_TYPE 枚举中的一个值,该值指示 hObject 参数标识的对象的类型。
pSacl
指向将包含检索的安全信息的 SACL 对象的指针。
bRequestNeededPrivileges
如果为 true,函数将尝试启用 SE_SECURITY_NAME 特权,并在完成时还原它。
返回值
如果成功,则返回 true;如果失败,则返回 false。
备注
如果要在许多不同的对象上多次调用 AtlGetSacl
,在调用函数之前启用一次 SE_SECURITY_NAME 特权,并将 bRequestNeededPrivileges 设置为 false,会更高效。
要求
标头: atlsecurity.h
AtlSetSacl
调用此函数可设置指定对象的系统访问控制列表 (SACL) 信息。
重要
此函数不能用于在 Windows 运行时中执行的应用程序。
inline bool AtlSetSacl(
HANDLE hObject,
SE_OBJECT_TYPE ObjectType,
const CSacl& rSacl,
DWORD dwInheritanceFlowControl = 0,
bool bRequestNeededPrivileges = true) throw(...);
参数
hObject
要为其设置安全信息的对象的句柄。
ObjectType
指定 SE_OBJECT_TYPE 枚举中的一个值,该值指示 hObject 参数标识的对象的类型。
rSacl
包含新安全信息的 SACL。
dwInheritanceFlowControl
继承流控制。 此值可以是 0(默认)、PROTECTED_SACL_SECURITY_INFORMATION 或UNPROTECTED_SACL_SECURITY_INFORMATION。
bRequestNeededPrivileges
如果为 true,函数将尝试启用 SE_SECURITY_NAME 特权,并在完成时还原它。
返回值
如果成功,则返回 true;如果失败,则返回 false。
注解
在调试版本中,如果 hObject 无效,或者 dwInheritanceFlowControl 不是三个允许值之一,则会发生断言错误。
如果要在许多不同的对象上多次调用 AtlSetSacl
,在调用函数之前启用一次 SE_SECURITY_NAME 特权,并将 bRequestNeededPrivileges 设置为 false,会更高效。
要求
标头: atlsecurity.h
AtlGetSecurityDescriptor
调用此函数可检索给定对象的安全说明符。
重要
此函数不能用于在 Windows 运行时中执行的应用程序。
inline bool AtlGetSecurityDescriptor(
LPCTSTR pszObjectName,
SE_OBJECT_TYPE ObjectType,
CSecurityDesc* pSecurityDescriptor,
SECURITY_INFORMATION requestedInfo = OWNER_SECURITY_INFORMATION |
GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION |
SACL_SECURITY_INFORMATION,
bool bRequestNeededPrivileges = true) throw(...);
参数
pszObjectName
指向以 null 结尾的字符串的指针,指定要从中检索安全信息的对象的名称。
ObjectType
指定 SE_OBJECT_TYPE 枚举中的一个值,指示 pszObjectName 参数标识的对象的类型。
pSecurityDescriptor
接收请求的安全描述符的对象。
requestedInfo
一组 SECURITY_INFORMATION 位标志,指示要检索的安全信息的类型。 此参数可以是以下值的组合。
bRequestNeededPrivileges
如果为 true,函数将尝试启用 SE_SECURITY_NAME 特权,并在完成时还原它。
返回值
如果成功,则返回 true;如果失败,则返回 false。
备注
如果要在许多不同的对象上多次调用 AtlGetSecurityDescriptor
,在调用函数之前启用一次 SE_SECURITY_NAME 特权,并将 bRequestNeededPrivileges 设置为 false,会更高效。
要求
标头: atlsecurity.h