System.Security.Permissions.FileIOPermission Class

public sealed class FileIOPermission : CodeAccessPermission

Base Types

Object
  CodeAccessPermission
    FileIOPermission

This type implements IPermission.

Assembly

mscorlib

Library

BCL

Summary

Secures access to files and directories.

Description

FileIOPermission objects describe protected operations on files and directories. Files and directories are specified using absolute paths. Case-sensitivity of files and directories is platform and file system dependent.

[Note: This permission distinguishes between the following types of file I/O access provided by FileIOPermissionAccess:

These access levels are independent, meaning that rights to one do not imply rights to another. For example, Write permission does not imply permission to Read or Append . FileIOPermissionAccess values can be combined using a bitwise OR operator.

For information on security considerations when accessing files, see FileStream .

]

The XML encoding of a FileIOPermission instance is defined below in EBNF format. The following conventions are used:

The following meta-language symbols are used:

BuildVersion refers to the build version of the shipping CLI. This is specified as a dotted build number such as '2412.0' .

ECMAPubKeyToken ::= b77a5c561934e089

FileName refers to the full path and file name of a file, or to a path name, such as "C:\Temp\test.exe" or "C:\ ".

The XML encoding of a FileIOPermission instance is as follows:

FileIOPermissionXML ::=

<IPermission class="

System.Security.Permissions.FileIOPermission,

mscorlib,

Version=1.0. BuildVersion,

Culture=neutral,

PublicKeyToken= ECMAPubKeyToken"

version="1"

(

Unrestricted="true"

)

|

(

(Read=" FileName (; FileName )*" ) ?

(Write=" FileName (; FileName )*" ) ?

(Append=" FileName (; FileName )*" ) ?

(PathDiscovery=" FileName (; FileName )*" ) ?

)

/>

See Also

System.Security.Permissions Namespace

Members

FileIOPermission Constructors

FileIOPermission(System.Security.Permissions.PermissionState) Constructor
FileIOPermission(System.Security.Permissions.FileIOPermissionAccess, System.String) Constructor

FileIOPermission Methods

FileIOPermission.Copy Method
FileIOPermission.FromXml Method
FileIOPermission.Intersect Method
FileIOPermission.IsSubsetOf Method
FileIOPermission.ToXml Method
FileIOPermission.Union Method


FileIOPermission(System.Security.Permissions.PermissionState) Constructor

public FileIOPermission(PermissionState state);

Summary

Constructs and initializes a new instance of the FileIOPermission class with the specified PermissionState value.

Parameters

state
A PermissionState value.

Exceptions

Exception TypeCondition
ArgumentExceptionstate is not a valid PermissionState value.

Description

[Note: This constructor creates either fully restricted (System.Security.Permissions.PermissionState.None) or System.Security.Permissions.PermissionState.Unrestricted access to files and directories.

]

See Also

System.Security.Permissions.FileIOPermission Class, System.Security.Permissions Namespace

FileIOPermission(System.Security.Permissions.FileIOPermissionAccess, System.String) Constructor

public FileIOPermission(FileIOPermissionAccess access, string path);

Summary

Constructs and initializes a new instance of the FileIOPermission class with the specified access to the specified file or directory.

Parameters

access
One or more values defined in FileIOPermissionAccess. Specify multiple values using the bitwise OR operator.
path
The absolute path of the file or directory.

Exceptions

Exception TypeCondition
ArgumentExceptionaccess specifies values not defined in FileIOPermissionAccess.

path contains one or more characters that are invalid for use in files or directory names.

path did not specify the absolute path to the file or directory.

Description

The set of characters that are invalid for use in file or directory names is platform specific.

See Also

System.Security.Permissions.FileIOPermission Class, System.Security.Permissions Namespace

FileIOPermission.Copy Method

public override IPermission Copy();

Summary

Returns a new FileIOPermission object containing the same values as the current instance.

Return Value

A new FileIOPermission containing the same values as the current instance.

Description

[Note: The object returned by this method represents the same level of access to files and directories as the current instance.

This method overrides System.Security.CodeAccessPermission.Copy and is implemented to support the IPermission interface.

]

See Also

System.Security.Permissions.FileIOPermission Class, System.Security.Permissions Namespace

FileIOPermission.FromXml Method

public override void FromXml(SecurityElement esd);

Summary

Reconstructs the state of a FileIOPermission object using the specified XML encoding.

Parameters

esd
A SecurityElement instance containing the XML encoding to use to reconstruct the state of a FileIOPermission object.

Exceptions

Exception TypeCondition
ArgumentNullExceptionesd is null .
ArgumentExceptionesd does not contain the encoding for a FileIOPermission instance.

The version number of esd is not valid.

Description

The state of the current instance is changed to the state encoded in esd.

[Note: For the XML encoding for this class, see the FileIOPermission class page.

This method overrides System.Security.CodeAccessPermission.FromXml(System.Security.SecurityElement).

]

See Also

System.Security.Permissions.FileIOPermission Class, System.Security.Permissions Namespace

FileIOPermission.Intersect Method

public override IPermission Intersect(IPermission target);

Summary

Returns a new FileIOPermission object that is the intersection of the current instance and the specified object.

Parameters

target
A FileIOPermission instance to intersect with the current instance.

Return Value

A new FileIOPermission instance that represents the intersection of the current instance and target. If the intersection is empty or target is null , returns null . If the current instance is unrestricted, returns a copy of target. If target is unrestricted, returns a copy of the current instance.

Exceptions

Exception TypeCondition
ArgumentExceptiontarget is not null and is not of type FileIOPermission .

Description

[Note: The intersection of two permissions is a permission that secures the resources and operations secured by both permissions. Specifically, it represents the minimum permission such that any demand that passes both permissions will also pass their intersection.

This method overrides System.Security.CodeAccessPermission.Intersect(System.Security.IPermission) and is implemented to support the IPermission interface.

]

See Also

System.Security.Permissions.FileIOPermission Class, System.Security.Permissions Namespace

FileIOPermission.IsSubsetOf Method

public override bool IsSubsetOf(IPermission target);

Summary

Determines whether the current instance is a subset of the specified object.

Parameters

target
A FileIOPermission instance that is to be tested for the subset relationship.

Return Value

true if the current instance is a subset of target ; otherwise, false . If the current instance is unrestricted, and target is not, returns false . If target is unrestricted, returns true . If target is null and no files or directories are secured by the current instance, returns true . If target is null , and the current instance secures one or more files or directories, returns false .

Exceptions

Exception TypeCondition
ArgumentExceptiontarget is not null and is not of type FileIOPermission .

Description

[Note: The current instance is a subset of target if the current instance specifies a set of accesses to resources that is wholly contained by target. For example, a permission that represents read access to a file is a subset of a permission that represents read and write access to the file.

If this method returns true , the current instance describes a level of access to files and directories that is also described by target.

This method overrides System.Security.CodeAccessPermission.IsSubsetOf(System.Security.IPermission) and is implemented to support the IPermission interface.

]

See Also

System.Security.Permissions.FileIOPermission Class, System.Security.Permissions Namespace

FileIOPermission.ToXml Method

public override SecurityElement ToXml();

Summary

Returns the XML encoding of the current instance.

Return Value

A SecurityElement containing the XML encoding of the state of the current instance.

Description

[Note: For the XML encoding for this class, see the FileIOPermission class page.

This method overrides System.Security.CodeAccessPermission.ToXml .

]

See Also

System.Security.Permissions.FileIOPermission Class, System.Security.Permissions Namespace

FileIOPermission.Union Method

public override IPermission Union(IPermission other);

Summary

Returns a new FileIOPermission that is the union of the current instance and the specified object.

Parameters

other
A FileIOPermission instance to combine with the current instance.

Return Value

A new FileIOPermission instance that represents the union of the current instance and other . If the current instance or other is unrestricted, returns a FileIOPermission instance that is unrestricted. If other is null , returns a copy of the current instance via the System.Security.IPermission.Copy method. If the current instance and other do not specify any file or directory names, returns null .

Exceptions

Exception TypeCondition
ArgumentExceptionother is not null and is not of type FileIOPermission .

Description

[Note: The result of a call to System.Security.Permissions.FileIOPermission.Union(System.Security.IPermission) is a permission that represents all of the access to files and directories represented by the current instance as well as the access to files and directories represented by other. Any demand that passes either the current instance or other passes their union.

This method overrides System.Security.CodeAccessPermission.Union(System.Security.IPermission) and is implemented to support the IPermission interface.

]

See Also

System.Security.Permissions.FileIOPermission Class, System.Security.Permissions Namespace