NetCodeGroupとは? わかりやすく解説

NetCodeGroup クラス

アセンブリのダウンロード元のサイトに Web アクセス許可を与えます。このクラスは継承できません。

名前空間: System.Security.Policy
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public NotInheritable Class
 NetCodeGroup
    Inherits CodeGroup
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public sealed class NetCodeGroup : CodeGroup
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public ref class NetCodeGroup sealed : public
 CodeGroup
/** @attribute SerializableAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
public final class NetCodeGroup extends CodeGroup
SerializableAttribute 
ComVisibleAttribute(true) 
public final class NetCodeGroup extends
 CodeGroup
解説解説

コード グループは、コード アクセス セキュリティ ポリシーのビルド ブロックです。各ポリシー レベルは、ルート コード グループで構成され、1 つ以上の子コード グループを含めることができます。各子コード グループは、独自の子コード グループを持つことができます。この動作は任意のレベル数まで拡張でき、ツリーを形成します。各コード グループには、特定のアセンブリの証拠に基づいて、そのアセンブリがそのコード グループに所属しているかどうかを判断するメンバシップ条件があります。メンバシップ条件が特定のアセンブリに一致したコード グループとその子コード グループだけにアクセス セキュリティ ポリシーが適用されます。

NetCodeGroup のマージ セマンティクスは、UnionCodeGroup のセマンティクスと同じです。このクラスは、一致している子コード グループの PolicyStatement オブジェクトと、入力として受け取った Url 証拠から生成した PolicyStatement との和集合を形成します。ただし、NetCodeGroup は、コードが実行されているサイトへ接続アクセスを与える、動的に計算された WebPermission を含むアクセス許可を返します。一方、UnionCodeGroup は、静的アクセス許可セットだけを返します。

NetCodeGroup が作成される場合は、次の表に示す既定の接続アクセス規則が含まれます。

元のサイトへの接続時にコードで使用することを許可されたスキームおよびポートを制御するには、適切な Scheme および Port プロパティ値を指定して CodeConnectAccess オブジェクトを AddConnectAccess メソッドに渡します。元のスキームが証拠に存在しない場合または認識されない場合に適用する接続アクセス規則は、AbsentOriginScheme ("") をスキームとして指定することによって作成できます。また、AnyOtherOriginScheme ("*") をスキームとして指定して、一致するスキームを持つ接続アクセス規則がないときに適用する接続アクセス規則を作成することもできます。

使用例使用例

NetCodeGroup を作成し、HTTP スキームを使用してダウンロードされたコード用に CodeConnectAccess オブジェクトを追加するコード例を次に示します。

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();
}
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()
 throws ApplicationException
{
    final 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.get_Current();
        if (level.get_Label().Equals(userPolicyLevel)) {
            break;
        }
    }
    if (!(level.get_Label().Equals(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.set_Name("ContosoHttpCodeGroup");
    codeGroup.set_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.get_RootCodeGroup().AddChild(codeGroup);
    // Save the changes to the policy level.
    System.Security.SecurityManager.SavePolicy();
} //SetNetCodeGroupAccess
継承階層継承階層
System.Object
   System.Security.Policy.CodeGroup
    System.Security.Policy.NetCodeGroup
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

NetCodeGroup コンストラクタ

NetCodeGroup クラスの新しいインスタンスを初期化します。

名前空間: System.Security.Policy
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

Public Sub New ( _
    membershipCondition As IMembershipCondition _
)
Dim membershipCondition As IMembershipCondition

Dim instance As New NetCodeGroup(membershipCondition)
public NetCodeGroup (
    IMembershipCondition membershipCondition
)
public:
NetCodeGroup (
    IMembershipCondition^ membershipCondition
)
public NetCodeGroup (
    IMembershipCondition membershipCondition
)
public function NetCodeGroup (
    membershipCondition : IMembershipCondition
)

パラメータ

membershipCondition

このコード グループがコード アクセスのセキュリティ ポリシーに適用されるかどうかを判断するために証拠をテストするメンバシップ条件。

例外例外
例外の種類条件

ArgumentNullException

membershipCondition パラメータが null 参照 (Visual Basic では Nothing) です。

ArgumentException

membershipCondition パラメータの型が有効ではありません。

解説解説
使用例使用例

NetCodeGroup を作成し、HTTP スキームを使用してダウンロードされたコード用に CodeConnectAccess オブジェクトを追加するコード例を次に示します。

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();
}
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()
 throws ApplicationException
{
    final 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.get_Current();
        if (level.get_Label().Equals(userPolicyLevel)) {
            break;
        }
    }
    if (!(level.get_Label().Equals(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.set_Name("ContosoHttpCodeGroup");
    codeGroup.set_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.get_RootCodeGroup().AddChild(codeGroup);
    // Save the changes to the policy level.
    System.Security.SecurityManager.SavePolicy();
} //SetNetCodeGroupAccess
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
NetCodeGroup クラス
NetCodeGroup メンバ
System.Security.Policy 名前空間

NetCodeGroup フィールド


パブリック フィールドパブリック フィールド

  名前 説明
パブリック フィールド AbsentOriginScheme コードの元のスキームが未知であるか、または認識されない場合にコードの接続アクセスを指定するための値を含みます。
パブリック フィールド AnyOtherOriginScheme 他の指定されていない元のスキームを指定するために使用される値を含んでいます。
参照参照

関連項目

NetCodeGroup クラス
System.Security.Policy 名前空間

その他の技術情報

コード グループ

NetCodeGroup プロパティ


NetCodeGroup メソッド


パブリック メソッドパブリック メソッド

  名前 説明
パブリック メソッド AddChild  子コード グループを現在のコード グループに追加します。 ( CodeGroup から継承されます。)
パブリック メソッド AddConnectAccess 指定された接続アクセスを現在のコード グループに追加します。
パブリック メソッド Copy オーバーライドされます。 現在のコード グループの詳細コピーを作成します。
パブリック メソッド Equals オーバーロードされます。 オーバーライドされます。 指定したコード グループが現在のコード グループと等しいかどうかを確認します。
パブリック メソッド FromXml  オーバーロードされます。 XML エンコーディングから、特定の状態のセキュリティ オブジェクトを再構築します。 ( CodeGroup から継承されます。)
パブリック メソッド GetConnectAccessRules 現在のコード グループの接続アクセス情報を取得します。
パブリック メソッド GetHashCode オーバーライドされます。  
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 ( Object から継承されます。)
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。)
パブリック メソッド RemoveChild  指定した子コード グループを削除します。 ( CodeGroup から継承されます。)
パブリック メソッド ResetConnectAccess 現在のコード グループの接続アクセス情報をすべて削除します。
パブリック メソッド Resolve オーバーライドされます。 一連の証拠について、コード グループおよびその子孫のポリシーを解決します。
パブリック メソッド ResolveMatchingCodeGroups オーバーライドされます。 一致しているコード グループを解決します。
パブリック メソッド ToString  現在の Object を表す String を返します。 ( Object から継承されます。)
パブリック メソッド ToXml  オーバーロードされます。 セキュリティ オブジェクトとその現在の状態を表す XML エンコーディングを作成します。 ( CodeGroup から継承されます。)
参照参照

関連項目

NetCodeGroup クラス
System.Security.Policy 名前空間

その他の技術情報

コード グループ

NetCodeGroup メンバ

アセンブリのダウンロード元のサイトに Web アクセス許可を与えます。このクラスは継承できません。

NetCodeGroup データ型で公開されるメンバを以下の表に示します。


パブリック コンストラクタパブリック コンストラクタ
  名前 説明
パブリック メソッド NetCodeGroup NetCodeGroup クラスの新しいインスタンスを初期化します。
パブリック フィールドパブリック フィールド
  名前 説明
パブリック フィールド AbsentOriginScheme コードの元のスキームが未知であるか、または認識されない場合にコードの接続アクセスを指定するための値を含みます。
パブリック フィールド AnyOtherOriginScheme 他の指定されていない元のスキームを指定するために使用される値を含んでいます。
パブリック プロパティパブリック プロパティ
パブリック メソッドパブリック メソッド
  名前 説明
パブリック メソッド AddChild  子コード グループを現在のコード グループに追加します。 (CodeGroup から継承されます。)
パブリック メソッド AddConnectAccess 指定された接続アクセスを現在のコード グループに追加します。
パブリック メソッド Copy オーバーライドされます。 現在のコード グループの詳細コピーを作成します。
パブリック メソッド Equals オーバーロードされます。 オーバーライドされます。 指定したコード グループが現在のコード グループと等しいかどうかを確認します。
パブリック メソッド FromXml  オーバーロードされます。 XML エンコーディングから、特定の状態のセキュリティ オブジェクトを再構築します。 (CodeGroup から継承されます。)
パブリック メソッド GetConnectAccessRules 現在のコード グループの接続アクセス情報を取得します。
パブリック メソッド GetHashCode オーバーライドされます。  
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 (Object から継承されます。)
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。)
パブリック メソッド RemoveChild  指定した子コード グループを削除します。 (CodeGroup から継承されます。)
パブリック メソッド ResetConnectAccess 現在のコード グループの接続アクセス情報をすべて削除します。
パブリック メソッド Resolve オーバーライドされます。 一連の証拠について、コード グループおよびその子孫のポリシーを解決します。
パブリック メソッド ResolveMatchingCodeGroups オーバーライドされます。 一致しているコード グループを解決します。
パブリック メソッド ToString  現在の Object を表す String を返します。 (Object から継承されます。)
パブリック メソッド ToXml  オーバーロードされます。 セキュリティ オブジェクトとその現在の状態を表す XML エンコーディングを作成します。 (CodeGroup から継承されます。)
参照参照

関連項目

NetCodeGroup クラス
System.Security.Policy 名前空間

その他の技術情報

コード グループ



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「NetCodeGroup」の関連用語

NetCodeGroupのお隣キーワード

   

英語⇒日本語
日本語⇒英語
   



NetCodeGroupのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS