FileIOPermission FileIOPermission FileIOPermission FileIOPermission Class

정의

파일 및 폴더에 액세스하는 기능을 제어합니다.Controls the ability to access files and folders. 이 클래스는 상속될 수 없습니다.This class cannot be inherited.

public ref class FileIOPermission sealed : System::Security::CodeAccessPermission, System::Security::Permissions::IUnrestrictedPermission
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public sealed class FileIOPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission
type FileIOPermission = class
    inherit CodeAccessPermission
    interface IUnrestrictedPermission
Public NotInheritable Class FileIOPermission
Inherits CodeAccessPermission
Implements IUnrestrictedPermission
상속
특성
구현

예제

다음 예제에서는 사용 하는 코드를 보여 줍니다. FileIOPermission합니다.The following examples illustrate code that uses FileIOPermission. 개체 코드의 다음 두 줄 f 클라이언트의 모든 파일을 컴퓨터의 로컬 디스크를 읽을 수 있는 권한을 나타냅니다.After the following two lines of code, the object f represents permission to read all files on the client computer's local disks. 코드 예제에는 다음 애플리케이션에 파일을 읽을 수 있는 권한이 있는지 여부를 결정할 권한을 요구 합니다.The code example then demands the permission to determine whether the application has permission to read the files.

FileIOPermission^ f = gcnew FileIOPermission( PermissionState::None );
f->AllLocalFiles = FileIOPermissionAccess::Read;
try
{
 f->Demand();
}
catch (SecurityException^ s)
{
 Console::WriteLine(s->Message);
}
FileIOPermission f = new FileIOPermission(PermissionState.None);
f.AllLocalFiles = FileIOPermissionAccess.Read;
try
{
    f.Demand();
}
catch (SecurityException s)
{
    Console.WriteLine(s.Message);
}

Dim f As New FileIOPermission(PermissionState.None)
f.AllLocalFiles = FileIOPermissionAccess.Read
Try
    f.Demand()
Catch s As SecurityException
    Console.WriteLine(s.Message)
End Try

개체 코드의 다음 두 줄 f2 C:\test_r 읽을 읽기 및 쓰기에 C:\example\out.txt 권한을 나타냅니다.After the following two lines of code, the object f2 represents permissions to read C:\test_r and read and write to C:\example\out.txt. ReadWrite 앞에서 설명한 대로 파일/폴더 사용 권한을 나타냅니다.Read and Write represent the file/folder permissions as previously described. 사용 권한을 만든 후 애플리케이션을 읽고 파일에 쓸 권한이 있는지 여부를 결정할 권한을 요구 하는 코드입니다.After creating the permission, the code demands the permission to determine whether the application has the right to read and write to the file.

FileIOPermission^ f2 = gcnew FileIOPermission( FileIOPermissionAccess::Read,"C:\\test_r" );
f2->AddPathList( (FileIOPermissionAccess) (FileIOPermissionAccess::Write | FileIOPermissionAccess::Read), "C:\\example\\out.txt" );
try
{
 f2->Demand();
}
catch (SecurityException^ s)
{
 Console::WriteLine(s->Message);
}
FileIOPermission f2 = new FileIOPermission(FileIOPermissionAccess.Read, "C:\\test_r");
f2.AddPathList(FileIOPermissionAccess.Write | FileIOPermissionAccess.Read, "C:\\example\\out.txt");
try
{
    f2.Demand();
}
catch (SecurityException s)
{
    Console.WriteLine(s.Message);
}
Dim f2 As New FileIOPermission(FileIOPermissionAccess.Read, "C:\test_r")
f2.AddPathList(FileIOPermissionAccess.Write Or FileIOPermissionAccess.Read, "C:\example\out.txt")
Try
    f2.Demand()
Catch s As SecurityException
    Console.WriteLine(s.Message)
End Try

설명

이 사용 권한은 파일 IO 액세스를 제공한 다음 네 가지 유형의 구분 FileIOPermissionAccess:This permission distinguishes between the following four types of file IO access provided by FileIOPermissionAccess:

  • Read: 파일의 내용에 대 한 읽기 액세스 또는 파일에 대 한 정보 (예: 길이 또는 마지막 수정 시간)에 대 한 액세스입니다.Read: Read access to the contents of the file or access to information about the file, such as its length or last modification time.

  • Write: 파일의 내용에 대 한 쓰기 액세스 또는 파일 이름 등의 파일에 대 한 정보를 변경 하려면 액세스 합니다.Write: Write access to the contents of the file or access to change information about the file, such as its name. 또한 삭제 하거나 덮어쓸 수 있습니다.Also allows for deletion and overwriting.

  • Append: 파일의 끝에만 쓸 수 있습니다.Append: Ability to write to the end of a file only. 읽을 수 없습니다.No ability to read.

  • PathDiscovery: 경로 자체의 정보에 액세스 합니다.PathDiscovery: Access to the information in the path itself. 이 경로에 표시 되는 디렉터리 구조에 대 한 정보 뿐만 아니라 사용자 이름 처럼 경로에 중요 한 정보를 보호할 수 있습니다.This helps protect sensitive information in the path, such as user names, as well as information about the directory structure that is revealed in the path. 그러나 이 값이 경로로 표시된 파일이나 폴더에 대한 액세스 권한을 부여하지는 않습니다.This value does not grant access to files or folders represented by the path.

참고

제공 Write 어셈블리에 대 한 액세스는 완전 신뢰를 부여 비슷합니다.Giving Write access to an assembly is similar to granting it full trust. 파일 시스템에 신청서를 작성 하지 말아야 하는 경우 없어야 함을 Write 액세스 합니다.If an application should not write to the file system, it should not have Write access.

이러한 모든 권한은 독립적 이므로 하나에 대 한 권한을 다른 권한은 포함 되지 않습니다.All these permissions are independent, meaning that rights to one do not imply rights to another. 예를 들어 Write 권한은 없고 할 Read 또는 Append합니다.For example, Write permission does not imply permission to Read or Append. 둘 이상의 권한이 필요한 경우 이러한 결합할 수 있습니다 다음에 나오는 코드 예와 같이 비트 OR 연산자를 사용 하 여.If more than one permission is desired, they can be combined using a bitwise OR as shown in the code example that follows. 파일 사용 권한은 정식 절대 경로의; 관점에서 정의 되며 호출 정식 파일 경로 사용 하 여 항상 이루어져야 합니다.File permission is defined in terms of canonical absolute paths; calls should always be made with canonical file paths.

FileIOPermission 파일 및 폴더에 보호 된 작업에 설명 합니다.FileIOPermission describes protected operations on files and folders. File 클래스에 파일 및 폴더에 대 한 보안 액세스를 제공 하는 데 도움이 됩니다.The File class helps provide secure access to files and folders. 파일 핸들을 만들 때 보안 액세스 검사가 수행 됩니다.The security access check is performed when the handle to the file is created. 생성 시 확인 작업을 수행 하면 보안 검사의 성능 영향을 최소화 됩니다.By doing the check at creation time, the performance impact of the security check is minimized. 파일 읽기 및 쓰기에 여러 번 발생할 수 있습니다 하는 동안 한 번 발생 합니다.Opening a file happens once, while reading and writing can happen multiple times. 파일이 열리면 더 검사가 수행 됩니다.Once the file is opened, no further checks are done. 개체는 신뢰할 수 없는 호출자에 게 전달 되 면 잘못 사용 될 수 있습니다.If the object is passed to an untrusted caller, it can be misused. 예를 들어, 파일 핸들 코드 보다 적은 권한으로 액세스할 수 있는 공용 전역 정적 변수에 저장 되어야 합니다.For example, file handles should not be stored in public global statics where code with less permission can access them.

FileIOPermissionAccess 파일 또는 폴더에서 수행할 수 있는 동작을 지정 합니다.FileIOPermissionAccess specifies actions that can be performed on the file or folder. 또한 이러한 작업을 비트 OR를 사용 하 여 복잡 한 인스턴스를 결합할 수 있습니다.In addition, these actions can be combined using a bitwise OR to form complex instances.

폴더에 대 한 액세스에 포함 된 모든 파일과 하위에서 폴더에 대 한 액세스 뿐만 아니라 모든 파일에 대 한 액세스를 의미 합니다.Access to a folder implies access to all the files it contains, as well as access to all the files and folders in its subfolders. 예를 들어 Read C:\folder1\에 대 한 액세스 의미 Read C:\folder1\file1.txt, C:\folder1\folder2에 대 한 액세스\, C:\folder1\folder2\file2.txt, 및 등입니다.For example, Read access to C:\folder1\ implies Read access to C:\folder1\file1.txt, C:\folder1\folder2\, C:\folder1\folder2\file2.txt, and so on.

참고

이전의.NET Framework의 버전에서을 .NET Framework 4.NET Framework 4를 사용할 수 있습니다는 CodeAccessPermission.Deny 신뢰할 수 있는 코드에서 시스템 리소스에 대 한 의도 하지 않은 액세스를 방지 하는 방법.In versions of the .NET Framework before the .NET Framework 4.NET Framework 4, you could use the CodeAccessPermission.Deny method to prevent inadvertent access to system resources by trusted code. Deny 이제 이전 리소스에 대 한 액세스 권한을 부여 어셈블리에 대 한 설정 의해서만 이제 결정 됩니다.Deny is now obsolete, and access to resources is now determined solely by the granted permission set for an assembly. 파일에 대 한 액세스를 제한 하려면 샌드박스에서 부분적으로 신뢰할 수 있는 코드를 실행 하 고 코드에 액세스할 수 있는 리소스에만 사용 권한을 할당 합니다.To limit access to files, you must run partially trusted code in a sandbox and assign it permissions only to resources that the code is allowed to access. 샌드박스에서 애플리케이션을 실행 하는 방법에 대 한 내용은 방법: 부분적으로 신뢰할 수 있는 코드 실행 샌드박스에서합니다.For information about running an application in a sandbox, see How to: Run Partially Trusted Code in a Sandbox.

생성자

FileIOPermission(FileIOPermissionAccess, AccessControlActions, String) FileIOPermission(FileIOPermissionAccess, AccessControlActions, String) FileIOPermission(FileIOPermissionAccess, AccessControlActions, String) FileIOPermission(FileIOPermissionAccess, AccessControlActions, String)

지정된 파일 또는 디렉터리에 대한 특정 액세스 및 파일 제어 정보에 대한 특정 액세스 권한을 사용하여 FileIOPermission 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the FileIOPermission class with the specified access to the designated file or directory and the specified access rights to file control information.

FileIOPermission(FileIOPermissionAccess, AccessControlActions, String[]) FileIOPermission(FileIOPermissionAccess, AccessControlActions, String[]) FileIOPermission(FileIOPermissionAccess, AccessControlActions, String[]) FileIOPermission(FileIOPermissionAccess, AccessControlActions, String[])

지정된 파일 및 디렉터리에 대한 특정 액세스와 파일 제어 정보에 대한 특정 액세스 권한을 사용하여 FileIOPermission 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the FileIOPermission class with the specified access to the designated files and directories and the specified access rights to file control information.

FileIOPermission(FileIOPermissionAccess, String) FileIOPermission(FileIOPermissionAccess, String) FileIOPermission(FileIOPermissionAccess, String) FileIOPermission(FileIOPermissionAccess, String)

지정된 파일이나 디렉터리에 대한 특정 권한을 사용하여 FileIOPermission 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the FileIOPermission class with the specified access to the designated file or directory.

FileIOPermission(FileIOPermissionAccess, String[]) FileIOPermission(FileIOPermissionAccess, String[]) FileIOPermission(FileIOPermissionAccess, String[]) FileIOPermission(FileIOPermissionAccess, String[])

지정된 파일과 디렉터리에 대한 특정 권한을 사용하여 FileIOPermission 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the FileIOPermission class with the specified access to the designated files and directories.

FileIOPermission(PermissionState) FileIOPermission(PermissionState) FileIOPermission(PermissionState) FileIOPermission(PermissionState)

지정된 완전 제한 또는 무제한 사용 권한을 사용하여 FileIOPermission 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the FileIOPermission class with fully restricted or unrestricted permission as specified.

속성

AllFiles AllFiles AllFiles AllFiles

모든 파일에 대한 허용된 액세스를 가져오거나 설정합니다.Gets or sets the permitted access to all files.

AllLocalFiles AllLocalFiles AllLocalFiles AllLocalFiles

모든 로컬 파일에 대한 허용된 액세스를 가져오거나 설정합니다.Gets or sets the permitted access to all local files.

메서드

AddPathList(FileIOPermissionAccess, String) AddPathList(FileIOPermissionAccess, String) AddPathList(FileIOPermissionAccess, String) AddPathList(FileIOPermissionAccess, String)

지정된 파일 또는 디렉터리에 대한 액세스 권한을 사용 권한의 기존 상태에 추가합니다.Adds access for the specified file or directory to the existing state of the permission.

AddPathList(FileIOPermissionAccess, String[]) AddPathList(FileIOPermissionAccess, String[]) AddPathList(FileIOPermissionAccess, String[]) AddPathList(FileIOPermissionAccess, String[])

지정된 파일 및 디렉터리에 대한 액세스 권한을 사용 권한의 기존 상태에 추가합니다.Adds access for the specified files and directories to the existing state of the permission.

Assert() Assert() Assert() Assert()

스택의 상위 호출자에게 리소스에 액세스할 수 있는 권한이 부여되지 않더라도 호출 코드가 이 메서드를 호출하는 코드를 통해 사용 권한 요구로 보호되는 리소스에 액세스할 수 있음을 선언합니다.Declares that the calling code can access the resource protected by a permission demand through the code that calls this method, even if callers higher in the stack have not been granted permission to access the resource. Assert()를 사용하면 보안 문제가 발생할 수 있습니다.Using Assert() can create security issues.

(Inherited from CodeAccessPermission)
Copy() Copy() Copy() Copy()

현재 사용 권한의 동일한 복사본을 만들고 반환합니다.Creates and returns an identical copy of the current permission.

Demand() Demand() Demand() Demand()

현재 인스턴스에서 지정한 사용 권한이 호출 스택의 일부 상위 호출자에만 부여된 경우 런타임에 SecurityException을 강제로 발생시킵니다.Forces a SecurityException at run time if all callers higher in the call stack have not been granted the permission specified by the current instance.

(Inherited from CodeAccessPermission)
Deny() Deny() Deny() Deny()

호출 스택의 상위 호출자가 이 메서드를 호출하는 코드를 통해 현재 인스턴스에서 지정한 리소스에 액세스하지 못하게 합니다.Prevents callers higher in the call stack from using the code that calls this method to access the resource specified by the current instance.

(Inherited from CodeAccessPermission)
Equals(Object) Equals(Object) Equals(Object) Equals(Object)

지정한 FileIOPermission 개체가 현재 FileIOPermission과 같은지 여부를 확인합니다.Determines whether the specified FileIOPermission object is equal to the current FileIOPermission.

FromXml(SecurityElement) FromXml(SecurityElement) FromXml(SecurityElement) FromXml(SecurityElement)

XML 인코딩을 사용하여 지정된 상태로 사용 권한을 다시 만듭니다.Reconstructs a permission with a specified state from an XML encoding.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

해시 알고리즘과 해시 테이블 같은 데이터 구조에 사용하기 적합한 FileIOPermission 개체에 대한 해시 코드를 가져옵니다.Gets a hash code for the FileIOPermission object that is suitable for use in hashing algorithms and data structures such as a hash table.

GetPathList(FileIOPermissionAccess) GetPathList(FileIOPermissionAccess) GetPathList(FileIOPermissionAccess) GetPathList(FileIOPermissionAccess)

지정된 FileIOPermissionAccess가 있는 모든 파일과 디렉터리를 가져옵니다.Gets all files and directories with the specified FileIOPermissionAccess.

GetType() GetType() GetType() GetType()

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

(Inherited from Object)
Intersect(IPermission) Intersect(IPermission) Intersect(IPermission) Intersect(IPermission)

현재 사용 권한과 지정된 사용 권한의 교집합에 해당하는 사용 권한을 만들어 반환합니다.Creates and returns a permission that is the intersection of the current permission and the specified permission.

IsSubsetOf(IPermission) IsSubsetOf(IPermission) IsSubsetOf(IPermission) IsSubsetOf(IPermission)

현재 사용 권한이 지정된 사용 권한의 하위 집합인지 여부를 확인합니다.Determines whether the current permission is a subset of the specified permission.

IsUnrestricted() IsUnrestricted() IsUnrestricted() IsUnrestricted()

현재 사용 권한이 무제한인지 여부를 나타내는 값을 반환합니다.Returns a value indicating whether the current permission is unrestricted.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(Inherited from Object)
PermitOnly() PermitOnly() PermitOnly() PermitOnly()

호출 스택의 상위 호출자가 이 메서드를 호출하는 코드를 통해 현재 인스턴스에서 지정한 리소스를 제외한 모든 리소스에 액세스할 수 없게 합니다.Prevents callers higher in the call stack from using the code that calls this method to access all resources except for the resource specified by the current instance.

(Inherited from CodeAccessPermission)
SetPathList(FileIOPermissionAccess, String) SetPathList(FileIOPermissionAccess, String) SetPathList(FileIOPermissionAccess, String) SetPathList(FileIOPermissionAccess, String)

지정된 파일이나 디렉터리에 대한 특정 액세스를 설정하여 사용 권한의 기존 상태를 바꿉니다.Sets the specified access to the specified file or directory, replacing the existing state of the permission.

SetPathList(FileIOPermissionAccess, String[]) SetPathList(FileIOPermissionAccess, String[]) SetPathList(FileIOPermissionAccess, String[]) SetPathList(FileIOPermissionAccess, String[])

지정된 파일과 디렉터리에 대한 특정 액세스 권한을 설정하여 지정된 액세스 권한에 대한 현재 상태를 새 경로 집합으로 바꿉니다.Sets the specified access to the specified files and directories, replacing the current state for the specified access with the new set of paths.

ToString() ToString() ToString() ToString()

현재 권한 개체의 문자열 표현을 만들고 반환합니다.Creates and returns a string representation of the current permission object.

(Inherited from CodeAccessPermission)
ToXml() ToXml() ToXml() ToXml()

사용 권한 및 해당 사용 권한의 현재 상태에 대한 XML 인코딩을 만듭니다.Creates an XML encoding of the permission and its current state.

Union(IPermission) Union(IPermission) Union(IPermission) Union(IPermission)

현재 사용 권한 및 지정한 사용 권한을 합한 사용 권한을 만듭니다.Creates a permission that is the union of the current permission and the specified permission.

명시적 인터페이스 구현

IPermission.Demand() IPermission.Demand() IPermission.Demand() IPermission.Demand() Inherited from CodeAccessPermission
IStackWalk.Assert() IStackWalk.Assert() IStackWalk.Assert() IStackWalk.Assert() Inherited from CodeAccessPermission
IStackWalk.Demand() IStackWalk.Demand() IStackWalk.Demand() IStackWalk.Demand() Inherited from CodeAccessPermission
IStackWalk.Deny() IStackWalk.Deny() IStackWalk.Deny() IStackWalk.Deny() Inherited from CodeAccessPermission
IStackWalk.PermitOnly() IStackWalk.PermitOnly() IStackWalk.PermitOnly() IStackWalk.PermitOnly() Inherited from CodeAccessPermission

적용 대상

추가 정보