Sdílet prostřednictvím


Directory.SetAccessControl(String, DirectorySecurity) Metoda

Definice

Použije položky seznamu řízení přístupu (ACL) popsané objektem DirectorySecurity do zadaného adresáře.

public:
 static void SetAccessControl(System::String ^ path, System::Security::AccessControl::DirectorySecurity ^ directorySecurity);
public static void SetAccessControl (string path, System.Security.AccessControl.DirectorySecurity directorySecurity);
static member SetAccessControl : string * System.Security.AccessControl.DirectorySecurity -> unit
Public Shared Sub SetAccessControl (path As String, directorySecurity As DirectorySecurity)

Parametry

path
String

Adresář pro přidání nebo odebrání položek seznamu řízení přístupu (ACL) z.

directorySecurity
DirectorySecurity

Objekt DirectorySecurity, který popisuje položku seznamu ACL, která se má použít v adresáři popsaném parametrem path.

Výjimky

Parametr directorySecurity je null.

Adresář nebyl nalezen.

path byl neplatný.

Aktuální proces nemá přístup k adresáři určenému path.

-nebo-

Aktuální proces nemá dostatečná oprávnění k nastavení položky seznamu ACL.

Poznámky

Metoda SetAccessControl použije položky seznamu řízení přístupu (ACL) do adresáře, který představuje nezahrnutou seznam ACL.

Opatrnost

Seznam ACL zadaný pro parametr directorySecurity nahradí existující seznam ACL pro adresář. Pokud chcete přidat oprávnění pro nového uživatele, použijte metodu GetAccessControl k získání existujícího seznamu ACL a jeho úpravě.

Seznam ACL popisuje jednotlivce a skupiny, které mají nebo nemají práva ke konkrétním akcím daného souboru nebo adresáře. Další informace naleznete v tématu Postupy: Přidání nebo odebrání položek seznamu řízení přístupu.

Metoda SetAccessControl zachovává pouze DirectorySecurity objekty, které byly změněny po vytvoření objektu. Pokud objekt DirectorySecurity nebyl změněn, nebude zachován v souboru. Proto není možné načíst objekt DirectorySecurity z jednoho souboru a znovu použít stejný objekt na jiný soubor.

Kopírování informací seznamu ACL z jednoho souboru do druhého:

  1. Pomocí metody GetAccessControl načtěte objekt DirectorySecurity ze zdrojového souboru.

  2. Vytvořte nový objekt DirectorySecurity pro cílový soubor.

  3. K načtení informací seznamu ACL použijte metodu GetSecurityDescriptorBinaryForm nebo GetSecurityDescriptorSddlForm objektu zdrojového DirectorySecurity.

  4. Pomocí metody SetSecurityDescriptorBinaryForm nebo SetSecurityDescriptorSddlForm zkopírujte informace získané v kroku 3 do cílového objektu DirectorySecurity.

  5. Pomocí metody SetAccessControl nastavte cílový DirectorySecurity objekt na cílový soubor.

V prostředích NTFS se uživateli udělí ReadAttributes a ReadExtendedAttributes, pokud má uživatel ListDirectory práva k nadřazené složce. Pokud chcete odepřít ReadAttributes a ReadExtendedAttributes, odepřete ListDirectory v nadřazené adresáři.

Platí pro

Viz také