Compartilhar via


Método IADsSecurityUtility::SetSecurityDescriptor (iads.h)

O método SetSecurityDescriptor define o descritor de segurança para o arquivo, o compartilhamento de arquivos ou a chave do Registro especificados.

Sintaxe

HRESULT SetSecurityDescriptor(
  [in] VARIANT varPath,
  [in] long    lPathFormat,
  [in] VARIANT varData,
  [in] long    lDataFormat
);

Parâmetros

[in] varPath

Uma cadeia de caracteres VARIANT que contém o caminho do objeto para o qual definir o descritor de segurança. Os valores possíveis são listados na lista a seguir.

Arquivo

Uma sintaxe de caminho de arquivo válida. Por exemplo: "c:\specs\public\adxml.doc" ou "\adsi\public\dsclient.exe".

Compartilhamento de arquivo

Uma sintaxe de caminho de arquivo válida para um compartilhamento de arquivos. Por exemplo: "\adsi\public".

Chave do Registro

Uma sintaxe válida do Registro. Por exemplo, "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ADs".

[in] lPathFormat

Contém um dos valores ADS_PATHTYPE_ENUM que especifica o formato do parâmetro varPath .

[in] varData

Uma VARIANT que contém o novo descritor de segurança. O formato do descritor de segurança é especificado pelo parâmetro lDataFormat .

[in] lDataFormat

Contém um dos valores ADS_SD_FORMAT_ENUM que especifica o formato do descritor de segurança contido no parâmetro VarData . A lista a seguir identifica os valores possíveis para esse parâmetro e o formato do parâmetro VarData .

Retornar valor

Retorna S_OK se tiver êxito ou um código de erro COM ou Win32 caso contrário. Os códigos de erro possíveis estão listados na lista a seguir.

Comentários

As entradas de controle de acesso devem aparecer na seguinte ordem na lista de controle de acesso de um descritor de segurança:

  • ACEs negados pelo acesso que se aplicam ao próprio objeto
  • ACEs negados pelo acesso que se aplicam a um filho do objeto, como um conjunto de propriedades ou uma propriedade
  • ACEs permitidas pelo acesso que se aplicam ao próprio objeto
  • ACEs permitidas pelo acesso que se aplicam a um filho do objeto, como um conjunto de propriedades ou uma propriedade
  • Todos os ACEs herdados

Exemplos

O exemplo de código a seguir mostra como definir um descritor de segurança para um arquivo.

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

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista
Servidor mínimo com suporte Windows Server 2008
Plataforma de Destino Windows
Cabeçalho iads.h
DLL Activeds.dll

Confira também

ADS_PATHTYPE_ENUM

ADS_SD_FORMAT_ENUM

ConvertSecurityDescriptor

IADsSecurityDescriptor

IADsSecurityUtility