NetCodeGroup Classe

Définition

Accorde une autorisation Web au site à partir duquel l'assembly a été téléchargé. Cette classe ne peut pas être héritée.

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
Héritage
NetCodeGroup
Attributs

Exemples

L’exemple de code suivant illustre la création d’un et l’ajout NetCodeGroup d’objets CodeConnectAccess pour le code téléchargé à l’aide du schéma HTTP.


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

Remarques

Les groupes de code sont les blocs de construction de la stratégie de sécurité d’accès au code. Chaque niveau de stratégie se compose d’un groupe de code racine qui peut avoir un ou plusieurs groupes de code enfants. Chaque groupe de code enfant peut avoir ses propres groupes de codes enfants ; ce comportement s’étend à n’importe quel nombre de niveaux, formant une arborescence. Chaque groupe de codes a une condition d’appartenance qui détermine si un assembly donné appartient au groupe, en fonction de la preuve de cet assembly. Seuls les groupes de code dont les conditions d’appartenance correspondent à un assembly donné, ainsi que leurs groupes de codes enfants, appliquent la stratégie de sécurité d’accès au code.

NetCodeGroup a la même sémantique de fusion que celle de UnionCodeGroup; elle forme l’union des objets de PolicyStatement tous les groupes de code enfants correspondants et du PolicyStatement qu’il génère à partir de la preuve d’entrée Url . Toutefois, NetCodeGroup retourne une autorisation contenant un calculé WebPermission dynamiquement qui accorde l’accès à la connexion au site à partir duquel le code est exécuté. UnionCodeGroup Retourne simplement un jeu d’autorisations statique.

Lorsqu’un NetCodeGroup est créé, il contient les règles d’accès de connexion par défaut indiquées dans le tableau suivant.

Schéma d’URI Règle
fichier Aucun accès de connexion au serveur d’origine n’est autorisé.
http L’accès HTTP et HTTPS est autorisé à l’aide du port d’origine.
https L’accès HTTPS est autorisé à l’aide du port d’origine.

Vous pouvez contrôler le schéma et le port que le code est autorisé à utiliser lors de la connexion à son site d’origine en passant un CodeConnectAccess objet avec les valeurs et de propriété appropriées SchemePort à la AddConnectAccess méthode . Vous pouvez créer une règle d’accès de connexion qui s’applique lorsque le schéma d’origine n’est pas présent dans la preuve ou n’est pas reconnu en spécifiant AbsentOriginScheme ( » « ) comme schéma. Vous pouvez également créer une règle d’accès de connexion qui s’applique lorsqu’il n’existe aucune règle d’accès de connexion avec un schéma correspondant en spécifiant AnyOtherOriginScheme (« * ») comme schéma.

Notes

Si le code ne soumet pas le schéma d’URI comme preuve, l’accès est autorisé à l’aide de n’importe quel schéma vers le site d’origine.

Constructeurs

NetCodeGroup(IMembershipCondition)

Initialise une nouvelle instance de la classe NetCodeGroup.

Champs

AbsentOriginScheme

Contient une valeur utilisée pour spécifier l'accès de connexion pour du code avec un modèle d'origine inconnu ou non reconnu.

AnyOtherOriginScheme

Contient une valeur utilisée pour spécifier tout autre modèle d'origine non spécifié.

Propriétés

AttributeString

Obtient une chaîne représentant les attributs de l'instruction de stratégie pour le groupe de codes.

Children

Obtient ou définit une liste triée des groupes de codes enfants d'un groupe de codes.

(Hérité de CodeGroup)
Description

Obtient ou définit la description du groupe de codes.

(Hérité de CodeGroup)
MembershipCondition

Obtient ou définit la condition d'appartenance du groupe de codes.

(Hérité de CodeGroup)
MergeLogic

Obtient la logique à utiliser pour la fusion des groupes.

Name

Obtient ou définit le nom du groupe de codes.

(Hérité de CodeGroup)
PermissionSetName

Obtient le nom de NamedPermissionSet pour le groupe de codes.

PolicyStatement

Obtient ou définit l'instruction de stratégie associée au groupe de codes.

(Hérité de CodeGroup)

Méthodes

AddChild(CodeGroup)

Ajoute un groupe de codes enfant au groupe de codes actuel.

(Hérité de CodeGroup)
AddConnectAccess(String, CodeConnectAccess)

Ajoute l'accès de connexion spécifié au groupe de codes actuel.

Copy()

Effectue une copie complète du groupe de codes actuel.

CreateXml(SecurityElement, PolicyLevel)

En cas de substitution dans une classe dérivée, sérialise des propriétés et un état interne spécifique à un groupe de codes dérivé et ajoute la sérialisation au SecurityElement spécifié.

(Hérité de CodeGroup)
Equals(CodeGroup, Boolean)

Détermine si le groupe de codes spécifié est équivalent au groupe de codes actuel, en vérifiant également les groupes de codes enfants, si cela est spécifié.

(Hérité de CodeGroup)
Equals(Object)

Détermine si le groupe de codes spécifié est équivalent au groupe de codes actuel.

Equals(Object)

Détermine si le groupe de codes spécifié est équivalent au groupe de codes actuel.

(Hérité de CodeGroup)
FromXml(SecurityElement)

Reconstruit un objet de sécurité avec un état donné à partir d'un codage XML.

(Hérité de CodeGroup)
FromXml(SecurityElement, PolicyLevel)

Reconstruit un objet de sécurité avec un état et un niveau de stratégie donnés à partir d'un codage XML.

(Hérité de CodeGroup)
GetConnectAccessRules()

Obtient les informations d'accès de connexion pour le groupe de codes actuel.

GetHashCode()

Obtient le code de hachage du groupe de codes actif.

GetHashCode()

Obtient le code de hachage du groupe de codes actif.

(Hérité de CodeGroup)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ParseXml(SecurityElement, PolicyLevel)

En cas de substitution dans une classe dérivée, reconstruit des propriétés et un état interne spécifique à un groupe de codes dérivé du SecurityElement spécifié.

(Hérité de CodeGroup)
RemoveChild(CodeGroup)

Supprime le groupe de codes enfants spécifié.

(Hérité de CodeGroup)
ResetConnectAccess()

Supprime toutes les informations d'accès de connexion pour le groupe de codes actuel.

Resolve(Evidence)

Résout la stratégie pour le groupe de codes et ses descendants pour un ensemble de preuves.

ResolveMatchingCodeGroups(Evidence)

Résout des groupes de codes correspondants.

ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)
ToXml()

Crée un codage XML de l’objet de sécurité et de son état actuel.

(Hérité de CodeGroup)
ToXml(PolicyLevel)

Crée un codage XML de l'objet de sécurité, de son état actuel et du niveau de stratégie dans lequel le code existe.

(Hérité de CodeGroup)

S’applique à