Метод IADsSecurityUtility::SetSecurityDescriptor (iads.h)
Метод SetSecurityDescriptor задает дескриптор безопасности для указанного файла, общей папки или раздела реестра.
Синтаксис
HRESULT SetSecurityDescriptor(
[in] VARIANT varPath,
[in] long lPathFormat,
[in] VARIANT varData,
[in] long lDataFormat
);
Параметры
[in] varPath
Строка VARIANT , содержащая путь к объекту для задания дескриптора безопасности. Возможные значения перечислены в следующем списке.
File
Допустимый синтаксис пути к файлу. Например, "c:\specs\public\adxml.doc" или "\adsi\public\dsclient.exe".
Общая папка
Допустимый синтаксис пути к файлу для общей папки. Например: "\adsi\public".
Раздел реестра
Допустимый синтаксис реестра. Например, "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ADs".
[in] lPathFormat
Содержит одно из ADS_PATHTYPE_ENUM значений, задающее формат параметра varPath .
[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 |
Header | iads.h |
DLL | Activeds.dll |