FileIOPermission Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Внимание
Code Access Security is not supported or honored by the runtime.
Управляет возможностью доступа к файлам и папкам. Этот класс не наследуется.
public ref class FileIOPermission sealed : System::Security::CodeAccessPermission, System::Security::Permissions::IUnrestrictedPermission
[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 FileIOPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission
[System.Serializable]
public sealed class FileIOPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class FileIOPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission
public sealed class FileIOPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission
[<System.Obsolete("Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
type FileIOPermission = class
inherit CodeAccessPermission
interface IUnrestrictedPermission
[<System.Serializable>]
type FileIOPermission = class
inherit CodeAccessPermission
interface IUnrestrictedPermission
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type FileIOPermission = class
inherit CodeAccessPermission
interface IUnrestrictedPermission
type FileIOPermission = class
inherit CodeAccessPermission
interface IUnrestrictedPermission
Public NotInheritable Class FileIOPermission
Inherits CodeAccessPermission
Implements IUnrestrictedPermission
- Наследование
- Атрибуты
- Реализации
Комментарии
Предостережение
Безопасность доступа к коду (CAS) устарела во всех версиях платформ .NET Framework, и .NET. Последние версии .NET не учитывают заметки CAS и создают ошибки, если используются API, связанные с CAS. Разработчики должны искать альтернативные средства выполнения задач безопасности.
Это разрешение различает следующие четыре типа доступа к файлу FileIOPermissionAccessввода-вывода, предоставляемые:
Read: чтение доступа к содержимому файла или доступ к сведениям о файле, например его длине или времени последнего изменения.Write: запись доступа к содержимому файла или доступ к изменению сведений о файле, например его имени. Также позволяет удалять и перезаписывать.Append: возможность записи только в конец файла. Нет возможности читать.PathDiscovery: доступ к информации в самом пути. Это помогает защитить конфиденциальную информацию в пути, например имена пользователей, а также сведения о структуре каталога, которая отображается в пути. Это значение не предоставляет доступ к файлам или папкам, представленным путем.
Note
Предоставление Write доступа к сборке похоже на предоставление ему полного доверия. Если приложение не должно записывать данные в файловую систему, у него не должно быть Write доступа.
Все эти разрешения являются независимыми, то есть права на одно не подразумевают права на другое. Например, Write разрешение не подразумевает разрешения или ReadAppend. Если необходимо несколько разрешений, их можно объединить с помощью битового ИЛИ, как показано в следующем примере кода. Разрешение файла определяется с точки зрения канонических абсолютных путей; вызовы всегда должны выполняться с каноническими путями к файлам.
FileIOPermission описывает защищенные операции с файлами и папками. Класс File помогает обеспечить безопасный доступ к файлам и папкам. Проверка доступа к безопасности выполняется при создании дескриптора файла. При выполнении проверки во время создания производительность проверки снижается. Открытие файла происходит один раз, при чтении и записи может произойти несколько раз. После открытия файла дальнейшие проверки не выполняются. Если объект передается ненадежным вызывающим объекту, его можно использовать неправильно. Например, дескриптор файлов не должен храниться в общедоступных глобальных статиках, где код с меньшим разрешением может получить к ним доступ.
FileIOPermissionAccess указывает действия, которые можно выполнить в файле или папке. Кроме того, эти действия можно объединить с помощью побитового ИЛИ для формирования сложных экземпляров.
Доступ к папке подразумевает доступ ко всем файлам, содержащимся в ней, а также к доступу ко всем файлам и папкам в вложенных папках. Например, Read доступ к C:\folder1\ подразумевает Read доступ к C:\folder1\file1.txt, C:\folder1\folder2\, C:\folder1\folder2\file2.txtи т. д.
Note
В версиях платформы .NET Framework до .NET Framework 4 можно использовать метод CodeAccessPermission.Deny, чтобы предотвратить непреднамеренный доступ к системным ресурсам с помощью доверенного кода. Deny теперь устарел, и доступ к ресурсам теперь определяется исключительно предоставленным набором разрешений для сборки. Чтобы ограничить доступ к файлам, необходимо запустить частично доверенный код в песочнице и назначить ему разрешения только ресурсам, к которым разрешен доступ код. Сведения о запуске приложения в песочнице см. в разделе "Практическое руководство. Запуск частично доверенного кода в песочнице".
Конструкторы
| Имя | Описание |
|---|---|
| FileIOPermission(FileIOPermissionAccess, AccessControlActions, String) |
Устаревшие..
Инициализирует новый экземпляр FileIOPermission класса с указанным доступом к указанному файлу или каталогу и указанным правами доступа к сведениям об элементе управления файлами. |
| FileIOPermission(FileIOPermissionAccess, AccessControlActions, String[]) |
Устаревшие..
Инициализирует новый экземпляр FileIOPermission класса с указанным доступом к указанным файлам и каталогам, а также указанными правами доступа к сведениям об управлении файлами. |
| FileIOPermission(FileIOPermissionAccess, String) |
Устаревшие..
Инициализирует новый экземпляр FileIOPermission класса с указанным доступом к указанному файлу или каталогу. |
| FileIOPermission(FileIOPermissionAccess, String[]) |
Устаревшие..
Инициализирует новый экземпляр FileIOPermission класса с указанным доступом к указанным файлам и каталогам. |
| FileIOPermission(PermissionState) |
Устаревшие..
Инициализирует новый экземпляр FileIOPermission класса с полным ограничением или неограниченным разрешением, как указано. |
Свойства
| Имя | Описание |
|---|---|
| AllFiles |
Устаревшие..
Получает или задает разрешенный доступ ко всем файлам. |
| AllLocalFiles |
Устаревшие..
Возвращает или задает разрешенный доступ ко всем локальным файлам. |
Методы
| Имя | Описание |
|---|---|
| AddPathList(FileIOPermissionAccess, String) |
Устаревшие..
Добавляет доступ к указанному файлу или каталогу в существующее состояние разрешения. |
| AddPathList(FileIOPermissionAccess, String[]) |
Устаревшие..
Добавляет доступ к указанным файлам и каталогам в существующее состояние разрешения. |
| Assert() |
Устаревшие..
Объявляет, что вызывающий код может получить доступ к ресурсу, защищенному запросом разрешений, с помощью кода, вызывающего этот метод, даже если вызывающие элементы в стеке не были предоставлены разрешения на доступ к ресурсу. Использование Assert() может создавать проблемы безопасности. (Унаследовано от CodeAccessPermission) |
| Copy() |
Устаревшие..
Создает и возвращает идентичную копию текущего разрешения. |
| Demand() |
Устаревшие..
SecurityException Принудительно выполняется, если все вызывающие объекты в стеке вызовов не были предоставлены разрешения, указанные текущим экземпляром. (Унаследовано от CodeAccessPermission) |
| Deny() |
Устаревшие..
Устаревшие..
Запрещает вызывающим объектам в стеке вызовов использовать код, который вызывает этот метод для доступа к ресурсу, указанному текущим экземпляром. (Унаследовано от CodeAccessPermission) |
| Equals(Object) |
Устаревшие..
Определяет, равен ли указанный FileIOPermission объект текущему FileIOPermissionобъекту. |
| FromXml(SecurityElement) |
Устаревшие..
Восстанавливает разрешение с заданным состоянием из кодировки XML. |
| GetHashCode() |
Устаревшие..
Получает хэш-код для объекта, который подходит для FileIOPermission использования в хэш-алгоритмах и структурах данных, таких как хэш-таблица. |
| GetPathList(FileIOPermissionAccess) |
Устаревшие..
Возвращает все файлы и каталоги с указанным FileIOPermissionAccess. |
| GetType() |
Устаревшие..
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| Intersect(IPermission) |
Устаревшие..
Создает и возвращает разрешение, которое является пересечением текущего разрешения и указанного разрешения. |
| IsSubsetOf(IPermission) |
Устаревшие..
Определяет, является ли текущее разрешение подмножеством указанного разрешения. |
| IsUnrestricted() |
Устаревшие..
Возвращает значение, указывающее, является ли текущее разрешение неограниченным. |
| MemberwiseClone() |
Устаревшие..
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| PermitOnly() |
Устаревшие..
Запрещает вызывающим объектам в стеке вызовов использовать код, который вызывает этот метод для доступа ко всем ресурсам, кроме ресурса, указанного текущим экземпляром. (Унаследовано от CodeAccessPermission) |
| SetPathList(FileIOPermissionAccess, String) |
Устаревшие..
Задает указанный доступ к указанному файлу или каталогу, заменив существующее состояние разрешения. |
| SetPathList(FileIOPermissionAccess, String[]) |
Устаревшие..
Задает указанный доступ к указанным файлам и каталогам, заменив текущее состояние для указанного доступа новым набором путей. |
| ToString() |
Устаревшие..
Создает и возвращает строковое представление текущего объекта разрешений. (Унаследовано от CodeAccessPermission) |
| ToXml() |
Устаревшие..
Создает xml-кодировку разрешения и текущего состояния. |
| Union(IPermission) |
Устаревшие..
Создает разрешение, которое является объединением текущего разрешения и указанного разрешения. |