IADsSecurityUtility::SetSecurityDescriptor 方法 (iads.h)
SetSecurityDescriptor 方法为指定的文件、文件共享或注册表项设置安全描述符。
语法
HRESULT SetSecurityDescriptor(
[in] VARIANT varPath,
[in] long lPathFormat,
[in] VARIANT varData,
[in] long lDataFormat
);
参数
[in] varPath
一个 VARIANT 字符串,其中包含要为其设置安全描述符的对象的路径。 以下列表中列出了可能的值。
文件
有效的文件路径语法。 例如:“c:\specs\public\adxml.doc”或“\adsi\public\dsclient.exe”。
文件共享
文件共享的有效文件路径语法。 例如:“\adsi\public”。
注册表项
有效的注册表语法。 例如,“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ADs”。
[in] lPathFormat
包含指定 varPath 参数格式的ADS_PATHTYPE_ENUM值之一。
[in] varData
包含新安全描述符的 VARIANT 。 安全描述符的格式由 lDataFormat 参数指定。
[in] lDataFormat
包含 ADS_SD_FORMAT_ENUM 值之一,该值指定 VarData 参数中包含的安全描述符的格式。 以下列表标识此参数的可能值以及 VarData 参数的格式。
返回值
如果成功,则返回 S_OK ,否则返回 COM 或 Win32 错误代码。 以下列表中列出了可能的错误代码。
注解
访问控制条目必须按以下顺序显示在安全描述符的访问控制列表中:
- 应用于对象本身的拒绝访问 ACE
- 应用于对象的子级(例如属性集或属性)的拒绝访问 ACE
- 允许访问的 ACE,应用于对象本身
- 应用于对象的子级(例如属性集或属性)的允许访问 ACE
- 所有继承的 ACE
示例
下面的代码示例演示如何为文件设置安全描述符。
Dim dacl as IADsAccessControlList
Dim sd as IADsSecurityDescriptor
Dim newAce as New AccessControlEntry
Dim sdUtil as New ADsSecurityUtility
Set sd = sdUtil.GetSecurityDescriptor("c:\specs\adsixml.doc", ADS_PATH_FILE, ADS_SD_FORMAT_IID )
Set dacl = sd.DiscretionaryAcl
' Add a new ACE for Jeff Smith.
newAce.Trustee = "Fabrikam\jeffsmith"
newAce.AccessMask = ADS_RIGHT_GENERIC_READ Or ADS_RIGHT_GENERIC_EXECUTE
newAce.AceType = ADS_ACETYPE_ACCESS_ALLOWED
dacl.AddAce newAce
sd.DiscretionaryAcl = dacl
sdUtil.SetSecurityDescriptor "c:\specs\adsixml.doc", ADS_PATH_FILE, sd, ADS_SD_FORMAT_IID
Cleanup:
If (Err.Number<>0) Then
MsgBox("An error has occurred. " & Err.Number)
End If
Set dacl = Nothing
Set sd = Nothing
Set newAce = Nothing
Set sdUtil = Nothing
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista |
最低受支持的服务器 | Windows Server 2008 |
目标平台 | Windows |
标头 | iads.h |
DLL | Activeds.dll |