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 オブジェクトと、入力Url証拠から生成されるPolicyStatementの和集合を形成します。 ただし、 NetCodeGroup は動的に計算された WebPermission を含むアクセス許可を返し、コードの実行元のサイトへの接続アクセスを許可します。 UnionCodeGroup は静的なアクセス許可セットを返します。
NetCodeGroupが作成されると、次の表に示す既定の接続アクセス規則が含まれます。
| URI スキーム | ルール |
|---|---|
| ファイル | 配信元サーバーへの接続アクセスは許可されません。 |
| http | HTTP および HTTPS アクセスは、配信元ポートを使用して許可されます。 |
| https | HTTPS アクセスは、配信元ポートを使用して許可されます。 |
適切なSchemeとPortプロパティ値を持つCodeConnectAccess オブジェクトを AddConnectAccess メソッドに渡すことで、コードが元のサイトに接続するときにコードが使用できるスキームとポートを制御できます。 配信元スキームが証拠に存在しない場合、またはスキームとして AbsentOriginScheme ("") を指定して認識されない場合に適用される接続アクセス規則を作成できます。 AnyOtherOriginScheme ("*") をスキームとして指定することで、一致するスキームを持つ接続アクセス規則がない場合に適用される接続アクセス規則を作成することもできます。
注
コードが 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, PolicyLevel) |
XML エンコードから、特定の状態とポリシー レベルでセキュリティ オブジェクトを再構築します。 (継承元 CodeGroup) |
| FromXml(SecurityElement) |
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) |