NetCodeGroup Klasse

Definition

Erteilt Webberechtigung für die Site, aus der die Assembly heruntergeladen wurde. Diese Klasse kann nicht vererbt werden.

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
Vererbung
NetCodeGroup
Attribute

Beispiele

Im folgenden Codebeispiel wird das Erstellen eines NetCodeGroup und das Hinzufügen von CodeConnectAccess Objekten für Code veranschaulicht, der mithilfe des HTTP-Schemas heruntergeladen wurde.


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

Hinweise

Codegruppen sind die Bausteine der Codezugriffssicherheitsrichtlinie. Jede Richtlinienebene besteht aus einer Stammcodegruppe, die eine oder mehrere untergeordnete Codegruppen enthalten kann. Jede untergeordnete Codegruppe kann über eigene untergeordnete Codegruppen verfügen. Dieses Verhalten erstreckt sich auf eine beliebige Anzahl von Ebenen und bildet eine Struktur. Jede Codegruppe verfügt über eine Mitgliedschaftsbedingung, die anhand der Beweise für diese Assembly bestimmt, ob eine bestimmte Assembly zu der Gruppe gehört. Nur Codegruppen, deren Mitgliedschaftsbedingungen mit einer bestimmten Assembly übereinstimmen, und deren untergeordnete Codegruppen wenden die Codezugriffssicherheitsrichtlinie an.

NetCodeGroup hat die gleiche Mergesemantik wie die von UnionCodeGroup. Es bildet die Vereinigung der PolicyStatement Objekte aller übereinstimmenden untergeordneten Codegruppen und der, die PolicyStatement sie aus dem Eingabebeweis Url generiert. Gibt jedoch eine Berechtigung mit einer dynamisch berechneten WebPermission zurück, die den Verbindungszugriff auf die Website gewährt, NetCodeGroup von der aus der Code ausgeführt wird, und UnionCodeGroup gibt einfach einen statischen Berechtigungssatz zurück.

Wenn eine NetCodeGroup erstellt wird, enthält sie die in der folgenden Tabelle gezeigten Standardzugriffsregeln für den Verbindungszugriff.

URI-Schema Regel
file Es ist kein Verbindungszugriff auf den Ursprungsserver zulässig.
http HTTP- und HTTPS-Zugriff ist über den Ursprungsport zulässig.
https DER HTTPS-Zugriff ist über den Ursprungsport zulässig.

Sie können das Schema und den Port steuern, die code beim Herstellen einer Verbindung mit dem Ursprungsstandort verwenden darf, indem Sie ein CodeConnectAccess Objekt mit den entsprechenden Scheme Eigenschaftenwerten und Port an die AddConnectAccess -Methode übergeben. Sie können eine Verbindungszugriffsregel erstellen, die gilt, wenn das Ursprungsschema nicht im Nachweis vorhanden ist oder nicht erkannt wird, indem Sie ("") als Schema angeben AbsentOriginScheme . Sie können auch eine Verbindungszugriffsregel erstellen, die angewendet wird, wenn keine Verbindungszugriffsregel mit einem übereinstimmenden Schema vorhanden ist, indem Sie ("*") als Schema angeben AnyOtherOriginScheme .

Hinweis

Wenn der Code das URI-Schema nicht als Beweis übermittelt, ist der Zugriff über ein beliebiges Schema an die Ursprungswebsite zulässig.

Konstruktoren

NetCodeGroup(IMembershipCondition)

Initialisiert eine neue Instanz der NetCodeGroup-Klasse.

Felder

AbsentOriginScheme

Enthält einen Wert zum Angeben des Verbindungszugriffs für Code mit einem unbekannten oder nicht erkannten Ursprungsschema.

AnyOtherOriginScheme

Enthält einen Wert zum Angeben eines beliebigen undefinierten Ursprungsschemas.

Eigenschaften

AttributeString

Ruft eine Zeichenfolgendarstellung der Attribute der Richtlinienanweisung für die Codegruppe ab.

Children

Ruft eine sortierte Liste der untergeordneten Codegruppen einer Codegruppe ab oder legt diese fest.

(Geerbt von CodeGroup)
Description

Ruft die Beschreibung der Codegruppe ab oder legt diese fest.

(Geerbt von CodeGroup)
MembershipCondition

Ruft die Mitgliedschaftsbedingung der Codegruppe ab oder legt diese fest.

(Geerbt von CodeGroup)
MergeLogic

Ruft die für das Zusammenführen von Gruppen zu verwendende Logik ab.

Name

Ruft den Namen der Codegruppe ab oder legt diesen fest.

(Geerbt von CodeGroup)
PermissionSetName

Ruft den Namen des NamedPermissionSet für die Codegruppe ab.

PolicyStatement

Ruft die der Codegruppe zugeordnete Richtlinienanweisung ab oder legt diese fest.

(Geerbt von CodeGroup)

Methoden

AddChild(CodeGroup)

Fügt der aktuellen Codegruppe eine untergeordnete Codegruppe hinzu.

(Geerbt von CodeGroup)
AddConnectAccess(String, CodeConnectAccess)

Fügt der aktuellen Codegruppe den angegebenen Verbindungszugriff hinzu.

Copy()

Erstellt eine tiefe Kopie der aktuellen Codegruppe.

CreateXml(SecurityElement, PolicyLevel)

Beim Überschreiben in einer abgeleiteten Klasse werden die für eine abgeleitete Codegruppe spezifischen Eigenschaften sowie der interne Zustand serialisiert. Die Serialisierung wird anschließend dem angegebenen SecurityElement hinzugefügt.

(Geerbt von CodeGroup)
Equals(CodeGroup, Boolean)

Bestimmt, ob die angegebene Codegruppe mit der aktuellen Codegruppe übereinstimmt und überprüft, sofern dies angegeben ist, auch die untergeordneten Codegruppen.

(Geerbt von CodeGroup)
Equals(Object)

Bestimmt, ob die angegebene Codegruppe mit der aktuellen Codegruppe übereinstimmt.

Equals(Object)

Bestimmt, ob die angegebene Codegruppe mit der aktuellen Codegruppe übereinstimmt.

(Geerbt von CodeGroup)
FromXml(SecurityElement)

Rekonstruiert aus einer XML-Codierung ein Sicherheitsobjekt mit einem angegebenen Zustand.

(Geerbt von CodeGroup)
FromXml(SecurityElement, PolicyLevel)

Rekonstruiert aus einer XML-Codierung ein Sicherheitsobjekt mit einem angegebenen Zustand und eine Richtlinienebene.

(Geerbt von CodeGroup)
GetConnectAccessRules()

Ruft die Verbindungszugriffsinformationen für die aktuelle Codegruppe ab.

GetHashCode()

Ruft den Hashcode der aktuellen Codegruppe ab.

GetHashCode()

Ruft den Hashcode der aktuellen Codegruppe ab.

(Geerbt von CodeGroup)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ParseXml(SecurityElement, PolicyLevel)

Rekonstruiert beim Überschreiben in einer abgeleiteten Klasse die spezifischen Eigenschaften sowie den internen Zustand einer aus dem angegebenen SecurityElement abgeleiteten Codegruppe.

(Geerbt von CodeGroup)
RemoveChild(CodeGroup)

Entfernt die angegebene untergeordnete Codegruppe.

(Geerbt von CodeGroup)
ResetConnectAccess()

Entfernt alle Verbindungszugriffsinformationen der aktuellen Codegruppe.

Resolve(Evidence)

Löst für einen Beweissatz Richtlinien für die Codegruppe und deren untergeordnete Elemente auf.

ResolveMatchingCodeGroups(Evidence)

Löst übereinstimmende Codegruppen auf.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)
ToXml()

Erstellt eine XML-Codierung des Sicherheitsobjekts und seines aktuellen Zustands.

(Geerbt von CodeGroup)
ToXml(PolicyLevel)

Erstellt eine XML-Codierung des Sicherheitsobjekts und seines aktuellen Zustands sowie die Richtlinienebene, auf der der Code sich befindet.

(Geerbt von CodeGroup)

Gilt für: