NetCodeGroup クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
アセンブリのダウンロード元のサイトに Web アクセス許可を与えます。 このクラスは継承できません。
public ref class NetCodeGroup sealed : System::Security::Policy::CodeGroup
public sealed class NetCodeGroup : System.Security.Policy.CodeGroup
[System.Serializable]
public sealed class NetCodeGroup : System.Security.Policy.CodeGroup
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class NetCodeGroup : System.Security.Policy.CodeGroup
type NetCodeGroup = class
inherit CodeGroup
[<System.Serializable>]
type NetCodeGroup = class
inherit CodeGroup
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type NetCodeGroup = class
inherit CodeGroup
Public NotInheritable Class NetCodeGroup
Inherits CodeGroup
- 継承
- 属性
例
次のコード例では、 を作成し、HTTP スキームを NetCodeGroup 使用してダウンロードしたコードの オブジェクトを追加 CodeConnectAccess する方法を示します。
static void SetNetCodeGroupAccess()
{
String^ userPolicyLevel = "User";
// Locate the User policy level.
PolicyLevel^ level = nullptr;
System::Collections::IEnumerator^ ph =
System::Security::SecurityManager::PolicyHierarchy();
while(ph->MoveNext())
{
level = (PolicyLevel^)ph->Current;
if (level->Label == userPolicyLevel)
{
break;
}
}
if (level->Label != userPolicyLevel)
throw gcnew ApplicationException("Could not find User policy level.");
IMembershipCondition^ membership =
gcnew UrlMembershipCondition("http://www.contoso.com/*");
NetCodeGroup^ codeGroup = gcnew NetCodeGroup(membership);
// Delete default settings.
codeGroup->ResetConnectAccess();
// Create an object that represents access to the FTP scheme and
// default port.
CodeConnectAccess^ CodeAccessFtp =
gcnew CodeConnectAccess(Uri::UriSchemeFtp,
CodeConnectAccess::DefaultPort);
// Create an object that represents access to the HTTPS scheme
// and default port.
CodeConnectAccess^ CodeAccessHttps =
gcnew CodeConnectAccess(Uri::UriSchemeHttps,
CodeConnectAccess::DefaultPort);
// Create an object that represents access to the origin
// scheme and port.
CodeConnectAccess^ CodeAccessOrigin =
CodeConnectAccess::CreateOriginSchemeAccess
(CodeConnectAccess::OriginPort);
// Add connection access objects to the NetCodeGroup object.
codeGroup->AddConnectAccess(Uri::UriSchemeHttp, CodeAccessFtp);
codeGroup->AddConnectAccess(Uri::UriSchemeHttp, CodeAccessHttps);
codeGroup->AddConnectAccess(Uri::UriSchemeHttp, CodeAccessOrigin);
// Provide name and description information for caspol.exe tool.
codeGroup->Name = "ContosoHttpCodeGroup";
codeGroup->Description = "Code originating from contoso.com can" +
" connect back using the FTP or HTTPS.";
// Add the code group to the User policy's root node.
level->RootCodeGroup->AddChild(codeGroup);
// Save the changes to the policy level.
System::Security::SecurityManager::SavePolicy();
}
public static void SetNetCodeGroupAccess()
{
const string userPolicyLevel = "User";
// Locate the User policy level.
PolicyLevel level = null;
System.Collections.IEnumerator ph =
System.Security.SecurityManager.PolicyHierarchy();
while(ph.MoveNext())
{
level = (PolicyLevel)ph.Current;
if( level.Label == userPolicyLevel )
{
break;
}
}
if (level.Label != userPolicyLevel)
throw new ApplicationException("Could not find User policy level.");
IMembershipCondition membership =
new UrlMembershipCondition(@"http://www.contoso.com/*");
NetCodeGroup codeGroup = new NetCodeGroup(membership);
// Delete default settings.
codeGroup.ResetConnectAccess();
// Create an object that represents access to the FTP scheme and default port.
CodeConnectAccess a1 = new CodeConnectAccess(Uri.UriSchemeFtp, CodeConnectAccess.DefaultPort);
// Create an object that represents access to the HTTPS scheme and default port.
CodeConnectAccess a2 = new CodeConnectAccess(Uri.UriSchemeHttps, CodeConnectAccess.DefaultPort);
// Create an object that represents access to the origin scheme and port.
CodeConnectAccess a3 = CodeConnectAccess.CreateOriginSchemeAccess(CodeConnectAccess.OriginPort);
// Add connection access objects to the NetCodeGroup object.
codeGroup.AddConnectAccess(Uri.UriSchemeHttp, a1);
codeGroup.AddConnectAccess(Uri.UriSchemeHttp, a2);
codeGroup.AddConnectAccess(Uri.UriSchemeHttp, a3);
// Provide name and description information for caspol.exe tool.
codeGroup.Name = "ContosoHttpCodeGroup";
codeGroup.Description = "Code originating from contoso.com can connect back using the FTP or HTTPS.";
// Add the code group to the User policy's root node.
level.RootCodeGroup.AddChild(codeGroup);
// Save the changes to the policy level.
System.Security.SecurityManager.SavePolicy();
}
注釈
コード グループは、コード アクセス セキュリティ ポリシーの構成要素です。 各ポリシー レベルは、1 つ以上の子コード グループを持つルート コード グループで構成されます。 各子コード グループには、独自の子コード グループを含めることができます。この動作は、任意の数のレベルまで拡張され、ツリーが形成されます。 各コード グループには、そのアセンブリの証拠に基づいて、特定のアセンブリがグループに属しているかどうかを決定するメンバーシップ条件があります。 特定のアセンブリに一致するメンバーシップ条件を持つコード グループと子コード グループのみが、コード アクセス セキュリティ ポリシーを適用します。
NetCodeGroupのマージ セマンティクスUnionCodeGroupは と同じです。一致するすべての子コード グループPolicyStatementのPolicyStatementオブジェクトと、入力Url証拠から生成される オブジェクトの和集合を形成します。 ただし、NetCodeGroupコードの実行UnionCodeGroup元サイトへの接続アクセスを許可する動的に計算された WebPermission を含むアクセス許可を返します。静的なアクセス許可セットを返すだけです。
NetCodeGroupが作成されると、次の表に示す既定の接続アクセス規則が含まれます。
URI スキーム | ルール |
---|---|
file | 配信元サーバーへの接続アクセスは許可されません。 |
http | HTTP および HTTPS アクセスは、配信元ポートを使用して許可されます。 |
https | HTTPS アクセスは、配信元ポートを使用して許可されます。 |
適切な Scheme プロパティ値を持つオブジェクトを メソッドに渡CodeConnectAccessすことで、コードが元のサイトに接続するときに使用できるスキームとPortポートをAddConnectAccess制御できます。 配信元スキームが証拠に存在しない場合、またはスキームとして ("") を指定 AbsentOriginScheme して認識されない場合に適用される接続アクセス規則を作成できます。 スキームとして ("*") を指定 AnyOtherOriginScheme することで、一致するスキームを持つ接続アクセス規則がない場合に適用される接続アクセス規則を作成することもできます。
Note
コードが URI スキームを証拠として送信しない場合は、任意のスキームを使用して配信元サイトに戻すアクセスが許可されます。
コンストラクター
NetCodeGroup(IMembershipCondition) |
NetCodeGroup クラスの新しいインスタンスを初期化します。 |
フィールド
AbsentOriginScheme |
コードの元のスキームが未知であるか、または認識されない場合にコードの接続アクセスを指定するための値を含みます。 |
AnyOtherOriginScheme |
他の指定されていない元のスキームを指定するために使用される値を含んでいます。 |
プロパティ
AttributeString |
コード グループのポリシー ステートメントの属性の文字列形式を取得します。 |
Children |
コード グループの子コード グループを順序付けして示したリストを取得または設定します。 (継承元 CodeGroup) |
Description |
コード グループの説明を取得または設定します。 (継承元 CodeGroup) |
MembershipCondition |
コード グループのメンバーシップ条件を取得または設定します。 (継承元 CodeGroup) |
MergeLogic |
グループをマージするために使用するロジックを取得します。 |
Name |
コード グループの名前を取得または設定します。 (継承元 CodeGroup) |
PermissionSetName |
コード グループの NamedPermissionSet の名前を取得します。 |
PolicyStatement |
コード グループに関連付けられているポリシー ステートメントを取得または設定します。 (継承元 CodeGroup) |
メソッド
AddChild(CodeGroup) |
子コード グループを現在のコード グループに追加します。 (継承元 CodeGroup) |
AddConnectAccess(String, CodeConnectAccess) |
指定された接続アクセスを現在のコード グループに追加します。 |
Copy() |
現在のコード グループの詳細コピーを作成します。 |
CreateXml(SecurityElement, PolicyLevel) |
派生クラスでオーバーライドされると、派生コード グループに固有のプロパティと内部状態をシリアル化し、指定した SecurityElement にシリアル化した内容を追加します。 (継承元 CodeGroup) |
Equals(CodeGroup, Boolean) |
指定したコード グループが、現在のコード グループと等しいかどうかを確認します。指定した場合は子コード グループも確認されます。 (継承元 CodeGroup) |
Equals(Object) |
指定したコード グループが現在のコード グループと等しいかどうかを確認します。 |
Equals(Object) |
指定したコード グループが現在のコード グループと等しいかどうかを確認します。 (継承元 CodeGroup) |
FromXml(SecurityElement) |
XML エンコーディングから、特定の状態のセキュリティ オブジェクトを再構築します。 (継承元 CodeGroup) |
FromXml(SecurityElement, PolicyLevel) |
XML エンコーディングから、特定の状態とポリシー レベルのセキュリティ オブジェクトを再構築します。 (継承元 CodeGroup) |
GetConnectAccessRules() |
現在のコード グループの接続アクセス情報を取得します。 |
GetHashCode() |
現在のコード グループのハッシュ コードを取得します。 |
GetHashCode() |
現在のコード グループのハッシュ コードを取得します。 (継承元 CodeGroup) |
GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
MemberwiseClone() |
現在の Object の簡易コピーを作成します。 (継承元 Object) |
ParseXml(SecurityElement, PolicyLevel) |
派生クラスでオーバーライドされると、指定した SecurityElement から派生したコード グループに固有のプロパティと内部状態を再構築します。 (継承元 CodeGroup) |
RemoveChild(CodeGroup) |
指定した子コード グループを削除します。 (継承元 CodeGroup) |
ResetConnectAccess() |
現在のコード グループの接続アクセス情報をすべて削除します。 |
Resolve(Evidence) |
一連の証拠について、コード グループおよびその子孫のポリシーを解決します。 |
ResolveMatchingCodeGroups(Evidence) |
一致しているコード グループを解決します。 |
ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |
ToXml() |
セキュリティ オブジェクトとその現在の状態の XML エンコードを作成します。 (継承元 CodeGroup) |
ToXml(PolicyLevel) |
セキュリティ オブジェクト、その現在の状態、およびコードが存在するポリシー レベルの XML エンコーディングを作成します。 (継承元 CodeGroup) |
適用対象
.NET