FileIOPermissionAttribute Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Внимание!
Code Access Security is not supported or honored by the runtime.
Позволяет применять действия безопасности для FileIOPermission к коду с помощью декларативной безопасности. Этот класс не может быть унаследован.
public ref class FileIOPermissionAttribute sealed : System::Security::Permissions::CodeAccessSecurityAttribute
[System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, AllowMultiple=true, Inherited=false)]
[System.Obsolete("Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public sealed class FileIOPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute
[System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, AllowMultiple=true, Inherited=false)]
[System.Serializable]
public sealed class FileIOPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute
[System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, AllowMultiple=true, Inherited=false)]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class FileIOPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute
[System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, AllowMultiple=true, Inherited=false)]
public sealed class FileIOPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute
[<System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, AllowMultiple=true, Inherited=false)>]
[<System.Obsolete("Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
type FileIOPermissionAttribute = class
inherit CodeAccessSecurityAttribute
[<System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, AllowMultiple=true, Inherited=false)>]
[<System.Serializable>]
type FileIOPermissionAttribute = class
inherit CodeAccessSecurityAttribute
[<System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, AllowMultiple=true, Inherited=false)>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type FileIOPermissionAttribute = class
inherit CodeAccessSecurityAttribute
[<System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, AllowMultiple=true, Inherited=false)>]
type FileIOPermissionAttribute = class
inherit CodeAccessSecurityAttribute
Public NotInheritable Class FileIOPermissionAttribute
Inherits CodeAccessSecurityAttribute
- Наследование
- Атрибуты
Примеры
В следующем примере кода показано, как запрашивать FileIOPermission с помощью класса FileIOPermissionAttribute, указывающего только разрешение, которое должно быть предоставлено коду.
[FileIOPermissionAttribute(SecurityAction::PermitOnly,ViewAndModify="C:\\example\\sample.txt")]
[FileIOPermissionAttribute(SecurityAction.PermitOnly, ViewAndModify = "C:\\example\\sample.txt")]
<FileIOPermissionAttribute(SecurityAction.PermitOnly, _
ViewAndModify:="C:\example\sample.txt")> Public Class SampleClass
В следующем примере показано, как требовать, чтобы вызывающий код неограничил FileIOPermission. Как правило, в управляемых библиотеках (DLL) требуется защитить методы или классы от потенциально вредного кода.
[FileIOPermissionAttribute(SecurityAction::Demand,Unrestricted=true)]
[FileIOPermissionAttribute(SecurityAction.Demand, Unrestricted=true)]
<FileIOPermissionAttribute(SecurityAction.Demand, _
Unrestricted := True)> Public Class SampleClass
Комментарии
Осторожность
Безопасность доступа к коду (CAS) не рекомендуется использовать во всех версиях .NET Framework и .NET. Последние версии .NET не учитывают заметки CAS и создают ошибки, если используются API, связанные с CAS. Разработчики должны искать альтернативные средства выполнения задач безопасности.
Файлы и каталоги указываются с помощью абсолютных путей. При доступе к файлам проверка безопасности выполняется при создании или открытии файла. Проверка безопасности не выполняется повторно, если файл не закрыт и повторно открыт. Проверка разрешений при первом доступе к файлу сводит к минимуму влияние проверки безопасности на производительность приложения, так как открытие файла происходит только один раз, а чтение и запись могут произойти несколько раз.
Область объявления, которую разрешено, зависит от используемого SecurityAction.
Сведения о безопасности, объявленные атрибутом безопасности, хранятся в метаданных целевого атрибута и получают доступ к системе во время выполнения. Атрибуты безопасности используются только для декларативной безопасности. Для обеспечения императивной безопасности используйте соответствующий класс разрешений.
Осторожность
Unrestricted
FileIOPermission предоставляет разрешение для всех путей в файловой системе, включая несколько имен пути, которые можно использовать для доступа к одному заданному файлу. Чтобы Deny доступ к файлу, необходимо Deny
все возможные пути к файлу. Например, если \\server\share сопоставляется с сетевым диском X, для Deny
доступа к \\server\share\file, необходимо Deny
\\server\share\file, X:\file и любой другой путь, который можно использовать для доступа к файлу.
Конструкторы
FileIOPermissionAttribute(SecurityAction) |
Устаревшие..
Инициализирует новый экземпляр класса FileIOPermissionAttribute с указанным SecurityAction. |
Свойства
Action |
Устаревшие..
Возвращает или задает действие безопасности. (Унаследовано от SecurityAttribute) |
All |
Устаревшие..
Устаревшие..
Получает или задает полный доступ для файла или каталога, указанного строковым значением. |
AllFiles |
Устаревшие..
Получает или задает разрешенный доступ ко всем файлам. |
AllLocalFiles |
Устаревшие..
Возвращает или задает разрешенный доступ ко всем локальным файлам. |
Append |
Устаревшие..
Возвращает или задает доступ к добавлению для файла или каталога, указанного строковым значением. |
ChangeAccessControl |
Устаревшие..
Возвращает или задает файл или каталог, в котором можно изменить сведения об управлении доступом. |
PathDiscovery |
Устаревшие..
Возвращает или задает файл или каталог, которому требуется предоставить обнаружение путей. |
Read |
Устаревшие..
Возвращает или задает доступ для чтения для файла или каталога, указанного строковым значением. |
TypeId |
Устаревшие..
При реализации в производном классе получает уникальный идентификатор для этого Attribute. (Унаследовано от Attribute) |
Unrestricted |
Устаревшие..
Возвращает или задает значение, указывающее, объявлено ли полное (неограниченное) разрешение на ресурс, защищенный атрибутом. (Унаследовано от SecurityAttribute) |
ViewAccessControl |
Устаревшие..
Возвращает или задает файл или каталог, в котором можно просмотреть сведения об управлении доступом. |
ViewAndModify |
Устаревшие..
Возвращает или задает файл или каталог, в котором можно просматривать и изменять данные файла. |
Write |
Устаревшие..
Возвращает или задает доступ на запись для файла или каталога, указанного строковым значением. |
Методы
CreatePermission() |
Устаревшие..
Создает и возвращает новую FileIOPermission. |
Equals(Object) |
Устаревшие..
Возвращает значение, указывающее, равен ли этот экземпляр указанному объекту. (Унаследовано от Attribute) |
GetHashCode() |
Устаревшие..
Возвращает хэш-код для этого экземпляра. (Унаследовано от Attribute) |
GetType() |
Устаревшие..
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
IsDefaultAttribute() |
Устаревшие..
При переопределении в производном классе указывает, является ли значение этого экземпляра значением по умолчанию для производного класса. (Унаследовано от Attribute) |
Match(Object) |
Устаревшие..
При переопределении в производном классе возвращает значение, указывающее, равен ли этот экземпляр указанному объекту. (Унаследовано от Attribute) |
MemberwiseClone() |
Устаревшие..
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
ToString() |
Устаревшие..
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
Явные реализации интерфейса
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Устаревшие..
Сопоставляет набор имен с соответствующим набором идентификаторов диспетчера. (Унаследовано от Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Устаревшие..
Извлекает сведения о типе объекта, который можно использовать для получения сведений о типе для интерфейса. (Унаследовано от Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
Устаревшие..
Извлекает количество интерфейсов сведений о типе, которые предоставляет объект (0 или 1). (Унаследовано от Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Устаревшие..
Предоставляет доступ к свойствам и методам, предоставляемым объектом. (Унаследовано от Attribute) |