Поделиться через


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)

Применяется к

См. также раздел