WebPermission 클래스

정의

주의

Code Access Security is not supported or honored by the runtime.

HTTP 인터넷 리소스에 액세스하는 권한을 제어합니다.

public ref class WebPermission sealed : System::Security::CodeAccessPermission, System::Security::Permissions::IUnrestrictedPermission
public sealed class WebPermission : 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 WebPermission : 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
[<System.Obsolete("Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
type WebPermission = class
    inherit CodeAccessPermission
    interface IUnrestrictedPermission
[<System.Serializable>]
type WebPermission = class
    inherit CodeAccessPermission
    interface IUnrestrictedPermission
Public NotInheritable Class WebPermission
Inherits CodeAccessPermission
Implements IUnrestrictedPermission
상속
특성
구현

예제

다음 예제에서는 를 사용하여 의 새 instance WebPermission 만드는 방법을 보여 줍니다Regex. 추가 호스트가 연결 및 수락 목록에 WebPermission추가됩니다. 마지막으로 연결 및 수락 목록이 콘솔에 표시됩니다.

//  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

설명

주의

CAS(코드 액세스 보안)는 .NET Framework 및 .NET의 모든 버전에서 더 이상 사용되지 않습니다. 최신 버전의 .NET은 CAS 주석을 준수하지 않으며 CAS 관련 API를 사용하는 경우 오류가 발생합니다. 개발자는 보안 작업을 수행하는 대체 수단을 찾아야 합니다.

WebPermission 는 인터넷 리소스에 대한 액세스를 제어하는 메서드 및 속성 집합을 제공합니다. 를 사용하여 WebPermission 가 만들어지면 설정된 WebPermission 에 따라 리소스에 PermissionState 대한 제한되거나 무제한 액세스를 제공할 수 있습니다.

WebPermission 다음 매개 변수 집합 중 하나를 사용하여 생성자를 호출하여 instance 만듭니다.

ConnectListAcceptList 는 액세스 권한을 부여한 URI를 보유합니다. 이러한 목록 중 하나에 URI를 추가하려면 를 사용합니다 AddPermission. 를 매개 변수로 NetworkAccess 전달 Accept 하면 URI가 에 AcceptList추가됩니다. WebPermission 는 와 일치하는 URI를 사용하여 대상 클래스에 대한 연결을 허용합니다 AcceptList.

주의

인터넷 리소스에 대한 액세스를 거부하려면 해당 리소스에 대해 가능한 모든 경로에 대한 액세스를 거부해야 합니다. 이렇게 하려면 상태 매개 변수를 로 설정하여 를 호출 WebPermission.WebPermission 해야 합니다 Deny. 더 나은 방법은 특정 리소스에 대한 액세스만 허용하는 것입니다. 이 주제에 대한 자세한 내용은 거부 방법 사용 항목을 참조하세요.

참고

리소스 정식 경로만 사용하여 액세스를 거부해야 합니다. 경로의 구문 변형을 모두 사용할 필요는 없습니다.

참고

사용자 이름 및 기본 포트 정보는 생성자에 제공 WebPermission(NetworkAccess, Regex) 된 정규식 인수와 비교하기 전에 에서 Uri 제거됩니다. 정규식에 사용자 정보 또는 기본 포트 번호가 포함된 경우 들어오는 Uri모든 가 정규식과 일치하지 않습니다.

생성자

WebPermission()
사용되지 않음.

WebPermission 클래스의 새 인스턴스를 만듭니다.

WebPermission(NetworkAccess, Regex)
사용되지 않음.

지정된 URI 정규식에 대한 지정된 액세스 권한을 사용하여 WebPermission 클래스의 새 인스턴스를 초기화합니다.

WebPermission(NetworkAccess, String)
사용되지 않음.

지정된 URI에 대한 지정된 액세스 권한을 사용하여 WebPermission 클래스의 새 인스턴스를 초기화합니다.

WebPermission(PermissionState)
사용되지 않음.

모든 요청을 허용하거나 모든 요청을 거부하는 WebPermission 클래스의 새 인스턴스를 만듭니다.

속성

AcceptList
사용되지 않음.

이 속성은 이 WebPermission이 보유한 단일 허용 권한의 열거형을 반환합니다. 반환된 열거형에 포함될 수 있는 개체 형식에는 StringRegex가 있습니다.

ConnectList
사용되지 않음.

이 속성은 이 WebPermission이 보유한 단일 연결 권한의 열거형을 반환합니다. 반환된 열거형에 포함될 수 있는 개체 형식에는 StringRegex가 있습니다.

메서드

AddPermission(NetworkAccess, Regex)
사용되지 않음.

현재 WebPermission에 대한 지정된 액세스 권한을 사용하여 지정된 URI를 추가합니다.

AddPermission(NetworkAccess, String)
사용되지 않음.

현재 WebPermission에 대한 지정된 액세스 권한을 사용하여 지정된 URI 문자열을 추가합니다.

Assert()
사용되지 않음.

스택의 상위 호출자에게 리소스에 액세스할 수 있는 권한이 부여되지 않더라도 호출 코드가 이 메서드를 호출하는 코드를 통해 사용 권한 요구로 보호되는 리소스에 액세스할 수 있음을 선언합니다. Assert()를 사용하면 보안 문제가 발생할 수 있습니다.

(다음에서 상속됨 CodeAccessPermission)
Copy()
사용되지 않음.

WebPermission의 복사본을 만듭니다.

Demand()
사용되지 않음.

현재 인스턴스에서 지정한 사용 권한이 호출 스택의 일부 상위 호출자에만 부여된 경우 런타임에 SecurityException을 강제로 발생시킵니다.

(다음에서 상속됨 CodeAccessPermission)
Deny()
사용되지 않음.
사용되지 않음.

호출 스택의 상위 호출자가 이 메서드를 호출하는 코드를 통해 현재 인스턴스에서 지정한 리소스에 액세스하지 못하게 합니다.

(다음에서 상속됨 CodeAccessPermission)
Equals(Object)
사용되지 않음.

지정한 CodeAccessPermission 개체가 현재 CodeAccessPermission과 같은지 여부를 확인합니다.

(다음에서 상속됨 CodeAccessPermission)
FromXml(SecurityElement)
사용되지 않음.

XML 인코딩에서 WebPermission을 다시 만듭니다.

GetHashCode()
사용되지 않음.

해시 알고리즘과 해시 테이블 같은 데이터 구조에 사용하기 적합한 CodeAccessPermission 개체에 대한 해시 코드를 가져옵니다.

(다음에서 상속됨 CodeAccessPermission)
GetType()
사용되지 않음.

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
Intersect(IPermission)
사용되지 않음.

WebPermission 인스턴스의 논리 교집합을 반환합니다.

IsSubsetOf(IPermission)
사용되지 않음.

현재 WebPermission이 지정된 개체의 하위 집합인지 여부를 확인합니다.

IsUnrestricted()
사용되지 않음.

WebPermission의 전체 사용 권한 상태를 확인합니다.

MemberwiseClone()
사용되지 않음.

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
PermitOnly()
사용되지 않음.

호출 스택의 상위 호출자가 이 메서드를 호출하는 코드를 통해 현재 인스턴스에서 지정한 리소스를 제외한 모든 리소스에 액세스할 수 없게 합니다.

(다음에서 상속됨 CodeAccessPermission)
ToString()
사용되지 않음.

현재 권한 개체의 문자열 표현을 만들고 반환합니다.

(다음에서 상속됨 CodeAccessPermission)
ToXml()
사용되지 않음.

WebPermission 및 현재 상태의 XML 인코딩을 만듭니다.

Union(IPermission)
사용되지 않음.

WebPermission 클래스의 두 인스턴스에 대한 논리합을 반환합니다.

적용 대상

추가 정보