File.SetAccessControl(String, FileSecurity) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Stosuje wpisy listy kontroli dostępu (ACL) opisane przez obiekt FileSecurity do określonego pliku.
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)
Parametry
- path
- String
Plik do dodawania lub usuwania wpisów listy kontroli dostępu (ACL).
- fileSecurity
- FileSecurity
Obiekt FileSecurity opisujący wpis listy ACL, który ma być stosowany do pliku opisanego przez parametr path
.
Wyjątki
Wystąpił błąd we/wy podczas otwierania pliku.
Parametr path
jest null
.
Nie można odnaleźć pliku.
Parametr path
określił plik tylko do odczytu.
-lub-
Ta operacja nie jest obsługiwana na bieżącej platformie.
-lub-
Parametr path
określił katalog.
-lub-
Obiekt wywołujący nie ma wymaganych uprawnień.
Parametr fileSecurity
jest null
.
Uwagi
Metoda SetAccessControl stosuje wpisy listy kontroli dostępu (ACL) do pliku reprezentującego nienastawioną listę listy ACL.
Ostrożność
Lista ACL określona dla parametru fileSecurity
zastępuje istniejącą listę ACL pliku. Aby dodać uprawnienia dla nowego użytkownika, użyj metody GetAccessControl, aby uzyskać istniejącą listę ACL, zmodyfikować ją, a następnie użyć SetAccessControl, aby zastosować go z powrotem do pliku.
Lista ACL opisuje osoby i grupy, które mają lub nie mają praw do określonych akcji w danym pliku. Aby uzyskać więcej informacji, zobacz Instrukcje: dodawanie lub usuwanie wpisów listy kontroli dostępu.
Metoda SetAccessControl utrzymuje się tylko FileSecurity obiektów, które zostały zmodyfikowane po utworzeniu obiektu. Jeśli obiekt FileSecurity nie został zmodyfikowany, nie zostanie on utrwalone w pliku. W związku z tym nie można pobrać obiektu FileSecurity z jednego pliku i ponownie zastosować ten sam obiekt do innego pliku.
Aby skopiować informacje listy ACL z jednego pliku do innego:
Użyj metody GetAccessControl, aby pobrać obiekt FileSecurity z pliku źródłowego.
Utwórz nowy obiekt FileSecurity dla pliku docelowego.
Użyj metody GetSecurityDescriptorBinaryForm lub GetSecurityDescriptorSddlForm obiektu źródłowego FileSecurity, aby pobrać informacje listy ACL.
Użyj metody SetSecurityDescriptorBinaryForm lub SetSecurityDescriptorSddlForm, aby skopiować informacje pobrane w kroku 3 do obiektu FileSecurity docelowego.
Ustaw docelowy obiekt FileSecurity na plik docelowy przy użyciu metody SetAccessControl.
W środowiskach NTFS ReadAttributes i ReadExtendedAttributes są przyznawane użytkownikowi, jeśli użytkownik ma ListDirectory prawa do folderu nadrzędnego. Aby odmówić ReadAttributes i ReadExtendedAttributes, odmów ListDirectory w katalogu nadrzędnym.