Condividi tramite


NetCodeGroup Classe

Definizione

Concede l'autorizzazione per il Web al sito da cui è stato eseguito il download dell'assembly. La 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 di 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 personalizzati; 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 di 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 tuttavia un'autorizzazione contenente un valore calcolato WebPermission in modo dinamico che concede l'accesso alla connessione al sito da cui viene eseguito il codice. UnionCodeGroup Restituisce NetCodeGroup semplicemente un set di autorizzazioni statico.

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

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

È possibile controllare lo schema e la porta che il codice può usare per la connessione al 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 che si applica 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 è presente alcuna regola di accesso alla connessione con uno schema corrispondente specificando AnyOtherOriginScheme ("*") come schema.

Nota

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

Costruttori

NetCodeGroup(IMembershipCondition)

Inizializza una nuova istanza della classe NetCodeGroup.

Campi

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à

AttributeString

Ottiene una rappresentazione in forma di stringa degli attributi relativi all'istruzione per i criteri del 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 per i criteri associata al gruppo di codice.

(Ereditato da CodeGroup)

Metodi

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

Esegue 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 SecurityElement specificato.

(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 specificati.

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

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

(Ereditato da CodeGroup)
FromXml(SecurityElement, PolicyLevel)

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

(Ereditato da CodeGroup)
GetConnectAccessRules()

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

GetHashCode()

Ottiene il codice hash per il gruppo di codice corrente.

GetHashCode()

Ottiene il codice hash per il gruppo di codice corrente.

(Ereditato da CodeGroup)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ParseXml(SecurityElement, PolicyLevel)

Quando è sottoposto a override in una classe derivata, ricostruisce le proprietà e lo stato interno specifico di un gruppo di codice derivato dall'oggetto SecurityElement specificato.

(Ereditato da CodeGroup)
RemoveChild(CodeGroup)

Rimuove il gruppo di codice figlio specificato.

(Ereditato da CodeGroup)
ResetConnectAccess()

Rimuove tutte le informazioni relative all'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 evidenze.

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 suo stato corrente.

(Ereditato da CodeGroup)
ToXml(PolicyLevel)

Crea una codifica XML per l'oggetto di sicurezza, il relativo stato corrente e il livello di criteri all'interno del quale è presente il codice.

(Ereditato da CodeGroup)

Si applica a