Directory.SetAccessControl(String, DirectorySecurity) Metod

Definition

Tillämpar poster i åtkomstkontrollistan (ACL) som beskrivs av ett DirectorySecurity objekt i den angivna katalogen.

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)

Parametrar

path
String

En katalog som du vill lägga till eller ta bort åtkomstkontrollistan (ACL)-poster från.

directorySecurity
DirectorySecurity

Ett DirectorySecurity objekt som beskriver en ACL-post som ska tillämpas på katalogen som beskrivs av parametern path .

Undantag

Parametern directorySecurity är null.

Det gick inte att hitta katalogen.

Den path var ogiltig.

Den aktuella processen har inte åtkomst till katalogen som anges av path.

-eller-

Den aktuella processen har inte tillräcklig behörighet för att ange ACL-posten.

Kommentarer

Metoden SetAccessControl tillämpar ACL-poster (Access Control List) på en katalog som representerar den icke-arvsbaserade ACL-listan.

Caution

Den ACL som anges för parametern directorySecurity ersätter den befintliga ACL:en för katalogen. Om du vill lägga till behörigheter för en ny användare använder du GetAccessControl metoden för att hämta den befintliga ACL:n och ändra den.

En ACL beskriver individer och grupper som har, eller inte har, rättigheter till specifika åtgärder i den angivna filen eller katalogen. Mer information finns i Så här lägger du till eller tar bort poster för åtkomstkontrollistan.

Metoden SetAccessControl bevarar endast DirectorySecurity objekt som har ändrats efter att objektet har skapats. Om ett DirectorySecurity objekt inte har ändrats sparas det inte i en fil. Därför går det inte att hämta ett DirectorySecurity objekt från en fil och tillämpa samma objekt på en annan fil igen.

Så här kopierar du ACL-information från en fil till en annan:

  1. GetAccessControl Använd metoden för att hämta DirectorySecurity objektet från källfilen.

  2. Skapa ett nytt DirectorySecurity objekt för målfilen.

  3. GetSecurityDescriptorBinaryForm Använd källobjektets DirectorySecurity metod eller GetSecurityDescriptorSddlForm för att hämta ACL-informationen.

  4. SetSecurityDescriptorBinaryForm Använd metoden eller SetSecurityDescriptorSddlForm för att kopiera informationen som hämtades i steg 3 till målobjektetDirectorySecurity.

  5. Ange målobjektet DirectorySecurity till målfilen med hjälp av SetAccessControl metoden .

I NTFS-miljöer ReadAttributes och ReadExtendedAttributes beviljas användaren om användaren har ListDirectory behörighet till den överordnade mappen. ReadAttributes Neka och ReadExtendedAttributesneka ListDirectory i den överordnade katalogen.

Gäller för

Se även