Condividi tramite


NetCodeGroup Classe

Definizione

Concede l'autorizzazione Web al sito da cui è stato scaricato l'assembly. Questa classe non può essere ereditata.

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
Ereditarietà
NetCodeGroup
Attributi

Esempio

Nell'esempio di codice seguente viene illustrata la creazione di un NetCodeGroup oggetto e l'aggiunta CodeConnectAccess di oggetti per il codice scaricato usando lo schema 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();
}

Commenti

I gruppi di codice sono i blocchi predefiniti dei criteri di sicurezza per l'accesso al codice. Ogni livello di criteri è costituito da un gruppo di codice radice che può avere uno o più gruppi di codice figlio. Ogni gruppo di codice figlio può avere gruppi di codice figlio specifici; questo comportamento si estende a un numero qualsiasi di livelli, formando un albero. Ogni gruppo di codice ha una condizione di appartenenza che determina se un determinato assembly appartiene al gruppo, in base all'evidenza per tale assembly. Solo i gruppi di codice le cui condizioni di appartenenza corrispondono a un determinato assembly, insieme ai relativi gruppi di codice figlio, applicano i criteri di sicurezza dell'accesso al codice.

NetCodeGroup ha la stessa semantica di unione di UnionCodeGroup, forma l'unione degli PolicyStatement oggetti di tutti i gruppi di codice figlio corrispondenti e l'oggetto PolicyStatement generato dall'evidenza di input Url . Restituisce NetCodeGroup tuttavia un'autorizzazione contenente un valore calcolato WebPermission in modo dinamico che concede l'accesso di connessione al sito da cui viene eseguito il codice. UnionCodeGroup Restituisce semplicemente un set di autorizzazioni statico.

Quando un oggetto NetCodeGroup viene creato, contiene le regole di accesso alle connessioni predefinite illustrate nella tabella seguente.

Schema URI Regola
documento Non è consentito l'accesso alla connessione al server di origine.
http L'accesso HTTP e HTTPS è consentito usando la porta di origine.
https L'accesso HTTPS è consentito usando la porta di origine.

È possibile controllare lo schema e la porta che il codice può usare per la connessione al relativo sito di origine passando un CodeConnectAccess oggetto con i valori appropriati Scheme e Port delle proprietà al AddConnectAccess metodo . È possibile creare una regola di accesso alla connessione applicabile quando lo schema di origine non è presente nell'evidenza o non viene riconosciuto specificando AbsentOriginScheme ("") come schema. È anche possibile creare una regola di accesso alla connessione che si applica quando non esiste una regola di accesso alla connessione con uno schema corrispondente specificando AnyOtherOriginScheme ("*") come schema.

Annotazioni

Se il codice non invia lo schema URI come evidenza, l'accesso è consentito usando qualsiasi schema di nuovo al sito di origine.

Costruttori

Nome Descrizione
NetCodeGroup(IMembershipCondition)

Inizializza una nuova istanza della classe NetCodeGroup.

Campi

Nome Descrizione
AbsentOriginScheme

Contiene un valore utilizzato per specificare l'accesso alla connessione per il codice con uno schema di origine sconosciuto o non riconosciuto.

AnyOtherOriginScheme

Contiene un valore utilizzato per specificare qualsiasi altro schema di origine non specificato.

Proprietà

Nome Descrizione
AttributeString

Ottiene una rappresentazione di stringa degli attributi dell'istruzione dei criteri per il gruppo di codice.

Children

Ottiene o imposta un elenco ordinato dei gruppi di codice figlio di un gruppo di codice.

(Ereditato da CodeGroup)
Description

Ottiene o imposta la descrizione del gruppo di codice.

(Ereditato da CodeGroup)
MembershipCondition

Ottiene o imposta la condizione di appartenenza del gruppo di codice.

(Ereditato da CodeGroup)
MergeLogic

Ottiene la logica da utilizzare per unire i gruppi.

Name

Ottiene o imposta il nome del gruppo di codice.

(Ereditato da CodeGroup)
PermissionSetName

Ottiene il nome dell'oggetto NamedPermissionSet per il gruppo di codice.

PolicyStatement

Ottiene o imposta l'istruzione dei criteri associata al gruppo di codice.

(Ereditato da CodeGroup)

Metodi

Nome Descrizione
AddChild(CodeGroup)

Aggiunge un gruppo di codice figlio al gruppo di codice corrente.

(Ereditato da CodeGroup)
AddConnectAccess(String, CodeConnectAccess)

Aggiunge l'accesso alla connessione specificato al gruppo di codice corrente.

Copy()

Crea una copia completa del gruppo di codice corrente.

CreateXml(SecurityElement, PolicyLevel)

Quando sottoposto a override in una classe derivata, serializza le proprietà e lo stato interno specifico di un gruppo di codice derivato e aggiunge la serializzazione all'oggetto specificato SecurityElement.

(Ereditato da CodeGroup)
Equals(CodeGroup, Boolean)

Determina se il gruppo di codice specificato è equivalente al gruppo di codice corrente, controllando anche i gruppi di codice figlio, se specificato.

(Ereditato da CodeGroup)
Equals(Object)

Determina se il gruppo di codice specificato è equivalente al gruppo di codice corrente.

Equals(Object)

Determina se il gruppo di codice specificato è equivalente al gruppo di codice corrente.

(Ereditato da CodeGroup)
FromXml(SecurityElement, PolicyLevel)

Ricostruisce un oggetto di sicurezza con uno stato e un livello di criteri specificati da una codifica XML.

(Ereditato da CodeGroup)
FromXml(SecurityElement)

Ricostruisce un oggetto di sicurezza con uno stato specificato da una codifica XML.

(Ereditato da CodeGroup)
GetConnectAccessRules()

Ottiene le informazioni di accesso alla connessione per il gruppo di codice corrente.

GetHashCode()

Ottiene il codice hash del gruppo di codice corrente.

GetHashCode()

Ottiene il codice hash del gruppo di codice corrente.

(Ereditato da CodeGroup)
GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
ParseXml(SecurityElement, PolicyLevel)

In caso di override in una classe derivata, ricostruisce le proprietà e lo stato interno specifici di un gruppo di codice derivato dall'oggetto specificato SecurityElement.

(Ereditato da CodeGroup)
RemoveChild(CodeGroup)

Rimuove il gruppo di codice figlio specificato.

(Ereditato da CodeGroup)
ResetConnectAccess()

Rimuove tutte le informazioni di accesso alla connessione per il gruppo di codice corrente.

Resolve(Evidence)

Risolve i criteri per il gruppo di codice e i relativi discendenti per un set di prove.

ResolveMatchingCodeGroups(Evidence)

Risolve i gruppi di codice corrispondenti.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)
ToXml()

Crea una codifica XML dell'oggetto di sicurezza e del relativo stato corrente.

(Ereditato da CodeGroup)
ToXml(PolicyLevel)

Crea una codifica XML dell'oggetto di sicurezza, il relativo stato corrente e il livello di criteri all'interno del quale esiste il codice.

(Ereditato da CodeGroup)

Si applica a