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
継承
属性
実装

次の例では、 を使用して の 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 関連の API が使われている場合、CAS の注釈は使われず、エラーが発生します。 開発者は、代わりの手段を見つけてセキュリティ タスクを実現する必要があります。

WebPermission には、インターネット リソースへのアクセスを制御するための一連のメソッドとプロパティが用意されています。 を WebPermission 使用すると、 の作成時に設定された に基づいて PermissionState 、リソースへの制限付きアクセスまたは無制限アクセスを WebPermission 提供できます。

次のいずれかのパラメーター セットをWebPermission使用して、そのコンストラクターを呼び出してインスタンスをCreateします。

  • パラメーターはありません。 既定の PermissionStateNone です。

  • PermissionStateUnrestrictedターゲット クラスでの URI の使用を許可するか、 None メソッドを使用AddPermissionして指定した URI へのアクセスのみを許可するには、 を指定します。

  • NetworkAccess値と URI 文字列。 指定された URI には、 値によって付与されるアクセス許可があります NetworkAccess

  • NetworkAccess指定子と URI 正規表現。

ConnectListアクセス許可を付与した URI を保持しますAcceptList。 これらのリストのいずれかに URI を追加するには、 を使用 AddPermissionします。 パラメーターとして をNetworkAccessAcceptすと、URI が にAcceptList追加されます。 WebPermission では、 と一致する URI を使用してターゲット クラスへの接続を許可します AcceptList

注意事項

インターネット リソースへのアクセスを拒否するには、そのリソースへの可能なすべてのパスへのアクセスを拒否する必要があります。 これには、state パラメーターを に設定して を呼び出すWebPermission.WebPermissionDeny必要があります。 より良い方法は、特定のリソースへのアクセスのみを許可することです。 このテーマの詳細については、 Deny メソッドの使用 に関するトピックを参照してください。

注意

リソース正規パスのみを使用してアクセスを拒否する必要があります。 すべてのパスの構文のバリエーションを使用する必要はありません。

注意

ユーザー名と既定のポート情報は、コンストラクターに指定された正規表現引数との比較の前に WebPermission(NetworkAccess, Regex) からUri削除されます。 正規表現にユーザー情報または既定のポート番号が含まれている場合、すべての受信 Uris は正規表現と一致しません。

コンストラクター

WebPermission()
古い.

WebPermission クラスの新しいインスタンスを作成します。

WebPermission(NetworkAccess, Regex)
古い.

指定した URI 正規表現に対するアクセス権を指定して、WebPermission クラスの新しいインスタンスを初期化します。

WebPermission(NetworkAccess, String)
古い.

指定した URI に対して指定したアクセス権を持つ WebPermission クラスの新しいインスタンスを初期化します。

WebPermission(PermissionState)
古い.

すべての要求を渡すか、すべての要求を失敗させる WebPermission クラスの新しいインスタンスを作成します。

プロパティ

AcceptList
古い.

このプロパティは、この WebPermission で保持される単一の受け入れ許可の列挙体を返します。 返された列挙体に格納される可能性のあるオブジェクトの型は、String および Regex です。

ConnectList
古い.

このプロパティは、この WebPermission で保持される単一の接続許可の列挙体を返します。 返された列挙体に格納される可能性のあるオブジェクトの型は、String および Regex です。

メソッド

AddPermission(NetworkAccess, Regex)
古い.

指定したアクセス権を持つ指定した URI を現在の WebPermission に追加します。

AddPermission(NetworkAccess, String)
古い.

指定したアクセス権を持つ指定した URI 文字列を現在の WebPermission に追加します。

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)
古い.

2 つの WebPermission インスタンスの論理積集合を返します。

IsSubsetOf(IPermission)
古い.

現在の WebPermission が、指定したオブジェクトのサブセットかどうかを判断します。

IsUnrestricted()
古い.

WebPermission の全般的なアクセス許可状態をチェックします。

MemberwiseClone()
古い.

現在の Object の簡易コピーを作成します。

(継承元 Object)
PermitOnly()
古い.

呼び出し履歴内の上位の呼び出し元が、このメソッドを呼び出すコードでは一切リソースにアクセスできないようにします。ただし、現在のインスタンスで指定されているリソースは例外です。

(継承元 CodeAccessPermission)
ToString()
古い.

現在のアクセス許可オブジェクトの文字列形式を作成して返します。

(継承元 CodeAccessPermission)
ToXml()
古い.

WebPermission とその現在の状態を表す XML エンコーディングを作成します。

Union(IPermission)
古い.

WebPermission クラスの 2 つのインスタンス間の論理和集合を返します。

適用対象

こちらもご覧ください