WebPermission 클래스

정의

HTTP 인터넷 리소스에 액세스하는 권한을 제어합니다.Controls rights to access HTTP Internet resources.

public ref class WebPermission sealed : System::Security::CodeAccessPermission, System::Security::Permissions::IUnrestrictedPermission
[System.Serializable]
public sealed class WebPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission
type WebPermission = class
    inherit CodeAccessPermission
    interface IUnrestrictedPermission
Public NotInheritable Class WebPermission
Inherits CodeAccessPermission
Implements IUnrestrictedPermission
상속
특성
구현

예제

다음 예제에서는 Regex를 사용 하 여 WebPermission의 새 인스턴스를 만드는 방법을 보여 줍니다.The following example demonstrates how to create a new instance of WebPermission using a Regex. 추가 호스트는 WebPermission의 연결 및 수락 목록에 추가 됩니다.Additional hosts are added to the connect and accept list of WebPermission. 마지막으로 연결 및 수락 목록이 콘솔에 표시 됩니다.Finally, the connect and accept list are displayed to the console.

//  Create a Regex that accepts all URLs containing the host fragment www.contoso.com.
Regex^ myRegex = gcnew Regex( "http://www\\.contoso\\.com/.*" );

// Create a WebPermission that gives permissions to all the hosts containing the same host fragment.
WebPermission^ myWebPermission = gcnew WebPermission( NetworkAccess::Connect,myRegex );

//Add connect privileges for a www.adventure-works.com.
myWebPermission->AddPermission( NetworkAccess::Connect, "http://www.adventure-works.com" );

//Add accept privileges for www.alpineskihouse.com.
myWebPermission->AddPermission( NetworkAccess::Accept, "http://www.alpineskihouse.com/" );

// Check whether all callers higher in the call stack have been granted the permission.
myWebPermission->Demand();

// Get all the URIs with Connect permission.
IEnumerator^ myConnectEnum = myWebPermission->ConnectList;
Console::WriteLine( "\nThe 'URIs' with 'Connect' permission are :\n" );
while ( myConnectEnum->MoveNext() )
{
   Console::WriteLine( "\t{0}", myConnectEnum->Current );
}

// Get all the URIs with Accept permission.   
IEnumerator^ myAcceptEnum = myWebPermission->AcceptList;
Console::WriteLine( "\n\nThe 'URIs' with 'Accept' permission is :\n" );

while ( myAcceptEnum->MoveNext() )
{
   Console::WriteLine( "\t{0}", myAcceptEnum->Current );
}

   //  Create a Regex that accepts all URLs containing the host fragment www.contoso.com.
   Regex myRegex = new Regex(@"http://www\.contoso\.com/.*");

   // Create a WebPermission that gives permissions to all the hosts containing the same host fragment.
   WebPermission myWebPermission = new WebPermission(NetworkAccess.Connect,myRegex);
   
   //Add connect privileges for a www.adventure-works.com.
   myWebPermission.AddPermission(NetworkAccess.Connect,"http://www.adventure-works.com");
   
   //Add accept privileges for www.alpineskihouse.com.
   myWebPermission.AddPermission(NetworkAccess.Accept, "http://www.alpineskihouse.com/");
   
   // Check whether all callers higher in the call stack have been granted the permission.
   myWebPermission.Demand();
   
   // Get all the URIs with Connect permission.
   IEnumerator myConnectEnum = myWebPermission.ConnectList;
   Console.WriteLine("\nThe 'URIs' with 'Connect' permission are :\n");
   while (myConnectEnum.MoveNext())
   {Console.WriteLine("\t" + myConnectEnum.Current);}

   // Get all the URIs with Accept permission.	  
   IEnumerator myAcceptEnum = myWebPermission.AcceptList;
   Console.WriteLine("\n\nThe 'URIs' with 'Accept' permission is :\n");
     
   while (myAcceptEnum.MoveNext())
     {Console.WriteLine("\t" + myAcceptEnum.Current);}

  ' Create a Regex that accepts all the URLs contianing the host fragment www.contoso.com.
  Dim myRegex As New Regex("http://www\.contoso\.com/.*")
    
  ' Create a WebPermission that gives permission to all the hosts containing same host fragment.
  Dim myWebPermission As New WebPermission(NetworkAccess.Connect, myRegex)
  ' Add connect privileges for a www.adventure-works.com.
  myWebPermission.AddPermission(NetworkAccess.Connect, "http://www.adventure-works.com")
  ' Add accept privileges for www.alpineskihouse.com.
  myWebPermission.AddPermission(NetworkAccess.Accept, "http://www.alpineskihouse.com/")
  ' Check whether all callers higher in the call stack have been granted the permission.
  myWebPermission.Demand()
    
  ' Get all the URIs with Connect permission.
  Dim myConnectEnum As IEnumerator = myWebPermission.ConnectList
  Console.WriteLine(ControlChars.NewLine + "The 'URIs' with 'Connect' permission are :" + ControlChars.NewLine)
  While myConnectEnum.MoveNext()
    Console.WriteLine((ControlChars.Tab + myConnectEnum.Current.ToString()))
  End While 
  
  ' Get all the URIs with Accept permission.	  
  Dim myAcceptEnum As IEnumerator = myWebPermission.AcceptList
  Console.WriteLine(ControlChars.NewLine + ControlChars.NewLine + "The 'URIs' with 'Accept' permission is :" + ControlChars.NewLine)

  While myAcceptEnum.MoveNext()
    Console.WriteLine((ControlChars.Tab + myAcceptEnum.Current))
  End While

설명

WebPermission는 인터넷 리소스에 대 한 액세스를 제어 하는 메서드 및 속성 집합을 제공 합니다.WebPermission provides a set of methods and properties to control access to Internet resources. WebPermission를 사용 하 여 WebPermission를 만들 때 설정 되는 PermissionState를 기준으로 리소스에 대 한 제한 또는 무제한 액세스를 제공할 수 있습니다.You can use a WebPermission to provide either restricted or unrestricted access to your resource, based on the PermissionState that is set when the WebPermission is created.

다음 매개 변수 집합 중 하나를 사용 하 여 생성자를 호출 하 여 WebPermission 인스턴스를 만듭니다.Create a WebPermission instance by calling its constructor using one of the following sets of parameters:

ConnectListAcceptList에는 액세스 권한이 부여 된 Uri가 포함 됩니다.The ConnectList and AcceptList hold the URIs to which you have granted access permission. 이러한 목록 중 하나에 URI를 추가 하려면 AddPermission를 사용 합니다.To add a URI to either of these lists, use AddPermission. AcceptNetworkAccess 매개 변수로 전달 하면 URI가 AcceptList에 추가 됩니다.If you pass Accept as the NetworkAccess parameter, the URI will be added to the AcceptList. WebPermissionAcceptList와 일치 하는 Uri를 사용 하 여 대상 클래스에 대 한 연결을 허용 합니다.WebPermission will allow connections to your target class with URIs matching the AcceptList.

주의

인터넷 리소스에 대 한 액세스를 거부 하려면 해당 리소스에 대 한 모든 가능한 경로에 대 한 액세스를 거부 해야 합니다.To deny access to an Internet resource, you must deny access to all the possible paths to that resource. 이렇게 하려면 상태 매개 변수가 Deny로 설정 된 WebPermission.WebPermission를 호출 해야 합니다.This requires calling WebPermission.WebPermission with state parameter set to Deny. 특정 리소스에만 액세스를 허용 하는 것이 더 나은 방법입니다.A better approach is to allow access to the specific resource only. 이 주제에 대 한 자세한 내용은 Deny 메서드 사용 항목을 참조 하세요.For more information about this subject, refer to the Using the Deny Method topic.

참고

리소스 정식 경로만 사용 하 여 액세스를 거부 해야 합니다.You need to deny access using only the resource canonical path. 모든 경로의 구문 변형을 사용할 필요는 없습니다.There is no need to use all the path's syntactical variations.

참고

WebPermission(NetworkAccess, Regex) 생성자에 제공 된 정규식 인수와 비교 하기 전에 Uri에서 사용자 이름 및 기본 포트 정보를 제거 합니다.User name and default port information is stripped from the Uri before the comparison with the regular expression argument that is supplied to the WebPermission(NetworkAccess, Regex) constructor. 정규식에 사용자 정보 또는 기본 포트 번호가 포함 되어 있으면 들어오는 모든 Uris가 정규식과 일치 하지 않게 됩니다.If the regular expression contains user information or the default port number, then all incoming Uris will fail to match the regular expression.

생성자

WebPermission()

WebPermission 클래스의 새 인스턴스를 만듭니다.Creates a new instance of the WebPermission class.

WebPermission(NetworkAccess, Regex)

지정된 URI 정규식에 대한 지정된 액세스 권한을 사용하여 WebPermission 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the WebPermission class with the specified access rights for the specified URI regular expression.

WebPermission(NetworkAccess, String)

지정된 URI에 대한 지정된 액세스 권한을 사용하여 WebPermission 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the WebPermission class with the specified access rights for the specified URI.

WebPermission(PermissionState)

모든 요청을 허용하거나 모든 요청을 거부하는 WebPermission 클래스의 새 인스턴스를 만듭니다.Creates a new instance of the WebPermission class that passes all demands or fails all demands.

속성

AcceptList

이 속성은 이 WebPermission이 보유한 단일 허용 권한의 열거형을 반환합니다.This property returns an enumeration of a single accept permissions held by this WebPermission. 반환된 열거형에 포함될 수 있는 개체 형식에는 StringRegex가 있습니다.The possible objects types contained in the returned enumeration are String and Regex.

ConnectList

이 속성은 이 WebPermission이 보유한 단일 연결 권한의 열거형을 반환합니다.This property returns an enumeration of a single connect permissions held by this WebPermission. 반환된 열거형에 포함될 수 있는 개체 형식에는 StringRegex가 있습니다.The possible objects types contained in the returned enumeration are String and Regex.

메서드

AddPermission(NetworkAccess, Regex)

현재 WebPermission에 대한 지정된 액세스 권한을 사용하여 지정된 URI를 추가합니다.Adds the specified URI with the specified access rights to the current WebPermission.

AddPermission(NetworkAccess, String)

현재 WebPermission에 대한 지정된 액세스 권한을 사용하여 지정된 URI 문자열을 추가합니다.Adds the specified URI string with the specified access rights to the current WebPermission.

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.

(다음에서 상속됨 CodeAccessPermission)
Copy()

WebPermission의 복사본을 만듭니다.Creates a copy of a WebPermission.

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.

(다음에서 상속됨 CodeAccessPermission)
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.

(다음에서 상속됨 CodeAccessPermission)
Equals(Object)

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

(다음에서 상속됨 CodeAccessPermission)
FromXml(SecurityElement)

XML 인코딩에서 WebPermission을 다시 만듭니다.Reconstructs a WebPermission from an XML encoding.

GetHashCode()

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

(다음에서 상속됨 CodeAccessPermission)
GetType()

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

(다음에서 상속됨 Object)
Intersect(IPermission)

WebPermission 인스턴스의 논리 교집합을 반환합니다.Returns the logical intersection of two WebPermission instances.

IsSubsetOf(IPermission)

현재 WebPermission이 지정된 개체의 하위 집합인지 여부를 확인합니다.Determines whether the current WebPermission is a subset of the specified object.

IsUnrestricted()

WebPermission의 전체 사용 권한 상태를 확인합니다.Checks the overall permission state of the WebPermission.

MemberwiseClone()

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

(다음에서 상속됨 Object)
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.

(다음에서 상속됨 CodeAccessPermission)
ToString()

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

(다음에서 상속됨 CodeAccessPermission)
ToXml()

WebPermission 및 현재 상태의 XML 인코딩을 만듭니다.Creates an XML encoding of a WebPermission and its current state.

Union(IPermission)

WebPermission 클래스의 두 인스턴스에 대한 논리합을 반환합니다.Returns the logical union between two instances of the WebPermission class.

명시적 인터페이스 구현

IPermission.Demand() (다음에서 상속됨 CodeAccessPermission)
IStackWalk.Assert() (다음에서 상속됨 CodeAccessPermission)
IStackWalk.Demand() (다음에서 상속됨 CodeAccessPermission)
IStackWalk.Deny() (다음에서 상속됨 CodeAccessPermission)
IStackWalk.PermitOnly() (다음에서 상속됨 CodeAccessPermission)

적용 대상

추가 정보