Partager via


NetCodeGroup Classe

Définition

Accorde l’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 et l’ajout CodeConnectAccess d’objets NetCodeGroup 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 code 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 code 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 génère PolicyStatement à partir de la preuve d’entrée Url . Toutefois, NetCodeGroup retourne une autorisation contenant une autorisation calculée WebPermission dynamiquement qui accorde l’accès 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 aux connexions 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 transmettant un CodeConnectAccess objet avec les valeurs appropriées Scheme et Port de propriété à 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.

Note

Si le code n’envoie pas le schéma d’URI comme preuve, l’accès est autorisé à utiliser n’importe quel schéma sur le site d’origine.

Constructeurs

Nom Description
NetCodeGroup(IMembershipCondition)

Initialise une nouvelle instance de la classe NetCodeGroup.

Champs

Nom Description
AbsentOriginScheme

Contient une valeur utilisée pour spécifier l’accès à la connexion pour le code avec un schéma d’origine inconnu ou non reconnu.

AnyOtherOriginScheme

Contient une valeur utilisée pour spécifier tout autre schéma d’origine non spécifié.

Propriétés

Nom Description
AttributeString

Obtient une représentation sous forme de chaîne des attributs de l’instruction de stratégie pour le groupe de codes.

Children

Obtient ou définit une liste ordonné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 fusionner des groupes.

Name

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

(Hérité de CodeGroup)
PermissionSetName

Obtient le nom du groupe de NamedPermissionSet codes.

PolicyStatement

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

(Hérité de CodeGroup)

Méthodes

Nom Description
AddChild(CodeGroup)

Ajoute un groupe de code enfant au groupe de code 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 approfondie du groupe de codes actuel.

CreateXml(SecurityElement, PolicyLevel)

En cas de substitution dans une classe dérivée, sérialise les propriétés et l’état interne spécifiques à un groupe de codes dérivés et ajoute la sérialisation à l’élément spécifié SecurityElement.

(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, le cas échéant.

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

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

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

Reconstruit un objet de sécurité avec un état donné à partir d’un encodage XML.

(Hérité de CodeGroup)
GetConnectAccessRules()

Obtient les informations d’accès aux connexions pour le groupe de codes actuel.

GetHashCode()

Obtient le code de hachage du groupe de codes actuel.

GetHashCode()

Obtient le code de hachage du groupe de codes actuel.

(Hérité de CodeGroup)
GetType()

Obtient la Type de l’instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Objectactuel.

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

En cas de substitution dans une classe dérivée, reconstruit les propriétés et l’état interne propres à un groupe de code dérivé à partir de l’objet spécifié SecurityElement.

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

Supprime le groupe de code enfant spécifié.

(Hérité de CodeGroup)
ResetConnectAccess()

Supprime toutes les informations d’accès aux connexions 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 les groupes de code correspondants.

ToString()

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

(Hérité de Object)
ToXml()

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

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

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

(Hérité de CodeGroup)

S’applique à