Udostępnij za pośrednictwem


File.SetAccessControl(String, FileSecurity) Metoda

Definicja

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:

  1. Użyj metody GetAccessControl, aby pobrać obiekt FileSecurity z pliku źródłowego.

  2. Utwórz nowy obiekt FileSecurity dla pliku docelowego.

  3. Użyj metody GetSecurityDescriptorBinaryForm lub GetSecurityDescriptorSddlForm obiektu źródłowego FileSecurity, aby pobrać informacje listy ACL.

  4. Użyj metody SetSecurityDescriptorBinaryForm lub SetSecurityDescriptorSddlForm, aby skopiować informacje pobrane w kroku 3 do obiektu FileSecurity docelowego.

  5. 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.

Dotyczy

Zobacz też