FileSystemAccessRule Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет абстракцию записи управления доступом (ACE), которая определяет правило доступа для файла или каталога. Этот класс не наследуется.
public ref class FileSystemAccessRule sealed : System::Security::AccessControl::AccessRule
public sealed class FileSystemAccessRule : System.Security.AccessControl.AccessRule
[System.Security.SecurityCritical]
public sealed class FileSystemAccessRule : System.Security.AccessControl.AccessRule
type FileSystemAccessRule = class
inherit AccessRule
[<System.Security.SecurityCritical>]
type FileSystemAccessRule = class
inherit AccessRule
Public NotInheritable Class FileSystemAccessRule
Inherits AccessRule
- Наследование
- Атрибуты
Примеры
В следующем примере кода класс используется FileSecurity для добавления и удаления записи управления доступом (ACE) из файла. Чтобы запустить этот пример, необходимо указать допустимую учетную запись пользователя или группы.
using System;
using System.IO;
using System.Security.AccessControl;
namespace FileSystemExample
{
class FileExample
{
public static void Main()
{
try
{
string fileName = "test.xml";
Console.WriteLine($"Adding access control entry for {fileName}");
// Add the access control entry to the file.
AddFileSecurity(fileName, @"DomainName\AccountName",
FileSystemRights.ReadData, AccessControlType.Allow);
Console.WriteLine($"Removing access control entry from {fileName}");
// Remove the access control entry from the file.
RemoveFileSecurity(fileName, @"DomainName\AccountName",
FileSystemRights.ReadData, AccessControlType.Allow);
Console.WriteLine("Done.");
}
catch (Exception e)
{
Console.WriteLine(e);
}
}
// Adds an ACL entry on the specified file for the specified account.
public static void AddFileSecurity(string fileName, string account,
FileSystemRights rights, AccessControlType controlType)
{
FileInfo fileInfo = new(fileName);
FileSecurity fSecurity = fileInfo.GetAccessControl();
// Add the FileSystemAccessRule to the security settings.
fSecurity.AddAccessRule(new FileSystemAccessRule(account,
rights, controlType));
// Set the new access settings.
fileInfo.SetAccessControl(fSecurity);
}
// Removes an ACL entry on the specified file for the specified account.
public static void RemoveFileSecurity(string fileName, string account,
FileSystemRights rights, AccessControlType controlType)
{
FileInfo fileInfo = new(fileName);
FileSecurity fSecurity = fileInfo.GetAccessControl();
// Remove the FileSystemAccessRule from the security settings.
fSecurity.RemoveAccessRule(new FileSystemAccessRule(account,
rights, controlType));
// Set the new access settings.
fileInfo.SetAccessControl(fSecurity);
}
}
}
Imports System.IO
Imports System.Security.AccessControl
Module FileExample
Sub Main()
Try
Dim fileName As String = "test.xml"
Console.WriteLine("Adding access control entry for " & fileName)
' Add the access control entry to the file.
AddFileSecurity(fileName, "DomainName\AccountName",
FileSystemRights.ReadData, AccessControlType.Allow)
Console.WriteLine("Removing access control entry from " & fileName)
' Remove the access control entry from the file.
RemoveFileSecurity(fileName, "DomainName\AccountName",
FileSystemRights.ReadData, AccessControlType.Allow)
Console.WriteLine("Done.")
Catch e As Exception
Console.WriteLine(e)
End Try
End Sub
' Adds an ACL entry on the specified file for the specified account.
Sub AddFileSecurity(ByVal fileName As String, ByVal account As String,
ByVal rights As FileSystemRights, ByVal controlType As AccessControlType)
Dim fileInfo As New FileInfo(fileName)
Dim fSecurity As FileSecurity = fileInfo.GetAccessControl()
' Add the FileSystemAccessRule to the security settings.
Dim accessRule As New FileSystemAccessRule(account, rights, controlType)
fSecurity.AddAccessRule(accessRule)
' Set the new access settings.
fileInfo.SetAccessControl(fSecurity)
End Sub
' Removes an ACL entry on the specified file for the specified account.
Sub RemoveFileSecurity(ByVal fileName As String, ByVal account As String,
ByVal rights As FileSystemRights, ByVal controlType As AccessControlType)
Dim fileInfo As New FileInfo(fileName)
Dim fSecurity As FileSecurity = fileInfo.GetAccessControl()
' Remove the FileSystemAccessRule from the security settings.
fSecurity.RemoveAccessRule(New FileSystemAccessRule(account,
rights, controlType))
' Set the new access settings.
fileInfo.SetAccessControl(fSecurity)
End Sub
End Module
Комментарии
Класс FileSystemAccessRule представляет абстракцию базовой записи управления доступом (ACE), указывающую учетную запись пользователя, тип доступа для предоставления (чтение, запись и т. д.), а также разрешение или запрет этого права. Этот класс также может указать, как правила доступа распространяются на дочерние объекты.
FileSystemAccessRule Используйте класс для создания нового правила доступа. Правило можно сохранить с помощью FileSecurity или DirectorySecurity класса.
Конструкторы
| Имя | Описание |
|---|---|
| FileSystemAccessRule(IdentityReference, FileSystemRights, AccessControlType) |
Инициализирует новый экземпляр FileSystemAccessRule класса, используя ссылку на учетную запись пользователя, значение, указывающее тип операции, связанной с правилом доступа, и значение, указывающее, следует ли разрешать или запрещать операцию. |
| FileSystemAccessRule(IdentityReference, FileSystemRights, InheritanceFlags, PropagationFlags, AccessControlType) |
Инициализирует новый экземпляр FileSystemAccessRule класса, используя ссылку на учетную запись пользователя, значение, указывающее тип операции, связанной с правилом доступа, значение, определяющее, как наследуются права, значение, определяющее распространение прав, а также значение, указывающее, следует ли разрешать или запрещать операцию. |
| FileSystemAccessRule(String, FileSystemRights, AccessControlType) |
Инициализирует новый экземпляр FileSystemAccessRule класса, используя имя учетной записи пользователя, значение, указывающее тип операции, связанной с правилом доступа, и значение, описывающее, следует ли разрешать или запрещать операцию. |
| FileSystemAccessRule(String, FileSystemRights, InheritanceFlags, PropagationFlags, AccessControlType) |
Инициализирует новый экземпляр FileSystemAccessRule класса, используя имя учетной записи пользователя, значение, указывающее тип операции, связанной с правилом доступа, значение, определяющее, как наследуются права, значение, определяющее распространение прав и значение, указывающее, следует ли разрешать или запрещать операцию. |
Свойства
| Имя | Описание |
|---|---|
| AccessControlType |
Возвращает значение, связанное AccessControlType с этим AccessRule объектом. (Унаследовано от AccessRule) |
| AccessMask |
Возвращает маску доступа для этого правила. (Унаследовано от AuthorizationRule) |
| FileSystemRights |
FileSystemRights Возвращает флаги, связанные с текущим FileSystemAccessRule объектом. |
| IdentityReference |
Возвращает значение IdentityReference , к которому применяется это правило. (Унаследовано от AuthorizationRule) |
| InheritanceFlags |
Получает значение флагов, определяющих, как это правило наследуется дочерними объектами. (Унаследовано от AuthorizationRule) |
| IsInherited |
Возвращает значение, указывающее, задано ли это правило явным образом или наследуется от родительского объекта контейнера. (Унаследовано от AuthorizationRule) |
| PropagationFlags |
Возвращает значение флагов распространения, определяющих, как наследование этого правила распространяется на дочерние объекты. Это свойство имеет значение, только если значение перечисления InheritanceFlags не Noneявляется. (Унаследовано от AuthorizationRule) |
Методы
| Имя | Описание |
|---|---|
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |