WebPermission WebPermission WebPermission WebPermission Class

定義

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

次の例は、の新しいインスタンスを作成する方法を示しますWebPermissionを使用して、Regexします。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に基づいて、リソースに制限されているまたは無制限のアクセスを提供するのには、PermissionStateときに設定されている、WebPermissionが作成されます。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. 渡す場合Acceptとして、 NetworkAccess URI は追加するパラメーター、AcceptListします。If you pass Accept as the NetworkAccess parameter, the URI will be added to the AcceptList. WebPermission 一致する Uri を使用し、ターゲット クラスに接続を許可するが、AcceptListします。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. これにより、呼び出し元が必要です。WebPermission.WebPermission状態パラメーターを設定してDenyします。This requires calling WebPermission.WebPermission with state parameter set to Deny. 特定のリソースのみへのアクセスを許可することをお勧めします。A better approach is to allow access to the specific resource only. このトピックの詳細についてを参照してください、 NIB:Deny メソッドを使用してトピック。For more information about this subject, refer to the NIB: 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.

注意

ユーザー名と既定のポート情報が削除、Uriに用意されている正規表現の引数を持つ比較の前に、WebPermission(NetworkAccess, Regex)コンス トラクター。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() WebPermission() WebPermission()

WebPermission クラスの新しいインスタンスを作成します。Creates a new instance of the WebPermission class.

WebPermission(NetworkAccess, Regex) WebPermission(NetworkAccess, Regex) WebPermission(NetworkAccess, Regex) 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) WebPermission(NetworkAccess, String) WebPermission(NetworkAccess, String) 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(PermissionState) WebPermission(PermissionState) WebPermission(PermissionState)

すべての要求を渡すか、すべての要求を失敗させる WebPermission クラスの新しいインスタンスを作成します。Creates a new instance of the WebPermission class that passes all demands or fails all demands.

プロパティ

AcceptList AcceptList AcceptList AcceptList

このプロパティは、この WebPermission で保持される単一の受け入れ許可の列挙体を返します。This property returns an enumeration of a single accept permissions held by this WebPermission. 返された列挙体に格納される可能性のあるオブジェクトの型は、String および Regex です。The possible objects types contained in the returned enumeration are String and Regex.

ConnectList ConnectList ConnectList ConnectList

このプロパティは、この WebPermission で保持される単一の接続許可の列挙体を返します。This property returns an enumeration of a single connect permissions held by this WebPermission. 返された列挙体に格納される可能性のあるオブジェクトの型は、String および Regex です。The possible objects types contained in the returned enumeration are String and Regex.

メソッド

AddPermission(NetworkAccess, Regex) AddPermission(NetworkAccess, Regex) AddPermission(NetworkAccess, Regex) AddPermission(NetworkAccess, Regex)

指定したアクセス権を持つ指定した URI を現在の WebPermission に追加します。Adds the specified URI with the specified access rights to the current WebPermission.

AddPermission(NetworkAccess, String) AddPermission(NetworkAccess, String) AddPermission(NetworkAccess, String) AddPermission(NetworkAccess, String)

指定したアクセス権を持つ指定した URI 文字列を現在の WebPermission に追加します。Adds the specified URI string with the specified access rights to the current WebPermission.

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()

WebPermission のコピーを作成します。Creates a copy of a WebPermission.

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)

指定した CodeAccessPermission オブジェクトが、現在の CodeAccessPermission と等しいかどうかを判断します。Determines whether the specified CodeAccessPermission object is equal to the current CodeAccessPermission.

(Inherited from CodeAccessPermission)
FromXml(SecurityElement) FromXml(SecurityElement) FromXml(SecurityElement) FromXml(SecurityElement)

XML エンコーディングから WebPermission を再構築します。Reconstructs a WebPermission from an XML encoding.

GetHashCode() GetHashCode() GetHashCode() 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.

(Inherited from CodeAccessPermission)
GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

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

2 つの WebPermission インスタンスの論理積集合を返します。Returns the logical intersection of two WebPermission instances.

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

現在の WebPermission が、指定したオブジェクトのサブセットかどうかを判断します。Determines whether the current WebPermission is a subset of the specified object.

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

WebPermission の全般的なアクセス許可状態をチェックします。Checks the overall permission state of the WebPermission.

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)
ToString() ToString() ToString() ToString()

現在のアクセス許可オブジェクトの文字列形式を作成して返します。Creates and returns a string representation of the current permission object.

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

WebPermission とその現在の状態を表す XML エンコーディングを作成します。Creates an XML encoding of a WebPermission and its current state.

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

WebPermission クラスの 2 つのインスタンス間の論理和集合を返します。Returns the logical union between two instances of the WebPermission class.

明示的なインターフェイスの実装

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

適用対象

こちらもご覧ください