File.SetAccessControl(String, FileSecurity) Metod

Definition

Tillämpar poster i åtkomstkontrollistan (ACL) som beskrivs av ett FileSecurity objekt på den angivna filen.

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

Parametrar

path
String

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

fileSecurity
FileSecurity

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

Undantag

Ett I/O-fel uppstod när filen öppnades.

Parametern path är null.

Det gick inte att hitta filen.

Parametern path angav en fil som är skrivskyddad.

-eller-

Den här åtgärden stöds inte på den aktuella plattformen.

-eller-

Parametern path angav en katalog.

-eller-

Anroparen har inte den behörighet som krävs.

Parametern fileSecurity är null.

Kommentarer

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

Caution

Den ACL som angetts för parametern fileSecurity ersätter den befintliga ACL:en för filen. 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, ändrar den och använder SetAccessControl den sedan för att tillämpa den på filen igen.

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

Metoden SetAccessControl bevarar endast FileSecurity objekt som har ändrats efter att objektet har skapats. Om ett FileSecurity objekt inte har ändrats sparas det inte i en fil. Därför går det inte att hämta ett FileSecurity 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 FileSecurity objektet från källfilen.

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

  3. GetSecurityDescriptorBinaryForm Använd källobjektets FileSecurity 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ålobjektetFileSecurity.

  5. Ange målobjektet FileSecurity 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