Freigeben über


NetCodeGroup Klasse

Definition

Gewährt webberechtigungen für die Website, von 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

Das folgende Codebeispiel veranschaulicht das Erstellen und Hinzufügen CodeConnectAccess von NetCodeGroup Objekten für Code, 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 über eine oder mehrere untergeordnete Codegruppen verfügen kann. Jede untergeordnete Codegruppe kann über eigene untergeordnete Codegruppen verfügen. Dieses Verhalten erstreckt sich auf eine beliebige Anzahl von Ebenen, die eine Struktur bilden. Jede Codegruppe verfügt über eine Mitgliedschaftsbedingung, die bestimmt, ob eine bestimmte Assembly zu der Gruppe gehört, basierend auf dem Nachweis für diese Assembly. Nur Codegruppen, deren Mitgliedschaftsbedingungen einer bestimmten Assembly entsprechen, und deren untergeordnete Codegruppen wenden die Codezugriffssicherheitsrichtlinie an.

NetCodeGroup hat die gleiche Zusammenführungssemantik wie die von UnionCodeGroup; sie bildet die Vereinigung der PolicyStatement Objekte aller übereinstimmenden untergeordneten Codegruppen und die PolicyStatement aus den Eingabebeweis Url generierten. Gibt jedoch eine Berechtigung zurück, die eine dynamisch berechnete WebPermission Berechtigung enthält, NetCodeGroup die den Verbindungszugriff auf die Website gewährt, von der der Code ausgeführt wird; UnionCodeGroup gibt einfach einen statischen Berechtigungssatz zurück.

Wenn ein Objekt NetCodeGroup erstellt wird, enthält es die in der folgenden Tabelle gezeigten Standardzugriffsregeln für verbindungszugriffe.

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

Sie können das Schema und den Port des Codes steuern, der beim Herstellen einer Verbindung mit seiner Ursprungswebsite verwendet werden darf, indem Sie ein CodeConnectAccess Objekt mit den entsprechenden Scheme Und Port Eigenschaftswerten 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 gilt, wenn keine Verbindungszugriffsregel mit einem übereinstimmenden Schema vorhanden ist, indem Sie ("*") als Schema angeben AnyOtherOriginScheme .

Hinweis

Wenn code das URI-Schema nicht als Nachweis übermittelt, ist der Zugriff mithilfe eines Schemas zurück auf die Ursprungswebsite zulässig.

Konstruktoren

Name Beschreibung
NetCodeGroup(IMembershipCondition)

Initialisiert eine neue Instanz der NetCodeGroup-Klasse.

Felder

Name Beschreibung
AbsentOriginScheme

Enthält einen Wert, der zum Angeben des Verbindungszugriffs für Code mit einem unbekannten oder unbekannten Ursprungsschema verwendet wird.

AnyOtherOriginScheme

Enthält einen Wert, der zum Angeben eines anderen nicht angegebenen Ursprungsschemas verwendet wird.

Eigenschaften

Name Beschreibung
AttributeString

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

Children

Dient zum Abrufen oder Festlegen einer sortierten Liste der untergeordneten Codegruppen einer Codegruppe.

(Geerbt von CodeGroup)
Description

Ruft die Beschreibung der Codegruppe ab oder legt sie fest.

(Geerbt von CodeGroup)
MembershipCondition

Ruft die Mitgliedschaftsbedingung der Codegruppe ab oder legt sie fest.

(Geerbt von CodeGroup)
MergeLogic

Ruft die Logik ab, die zum Zusammenführen von Gruppen verwendet werden soll.

Name

Dient zum Abrufen oder Festlegen des Namens der Codegruppe.

(Geerbt von CodeGroup)
PermissionSetName

Ruft den Namen der NamedPermissionSet Codegruppe ab.

PolicyStatement

Dient zum Abrufen oder Festlegen der Richtlinienanweisung, die der Codegruppe zugeordnet ist.

(Geerbt von CodeGroup)

Methoden

Name Beschreibung
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)

Wenn sie in einer abgeleiteten Klasse außer Kraft gesetzt werden, serialisiert sie Eigenschaften und internen Zustand, die für eine abgeleitete Codegruppe spezifisch sind, und fügt der angegebenen SecurityElementSerialisierung hinzu.

(Geerbt von CodeGroup)
Equals(CodeGroup, Boolean)

Bestimmt, ob die angegebene Codegruppe der aktuellen Codegruppe entspricht, wobei die untergeordneten Codegruppen ebenfalls überprüft werden, sofern angegeben.

(Geerbt von CodeGroup)
Equals(Object)

Bestimmt, ob die angegebene Codegruppe der aktuellen Codegruppe entspricht.

Equals(Object)

Bestimmt, ob die angegebene Codegruppe der aktuellen Codegruppe entspricht.

(Geerbt von CodeGroup)
FromXml(SecurityElement, PolicyLevel)

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

(Geerbt von CodeGroup)
FromXml(SecurityElement)

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

(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 die Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
ParseXml(SecurityElement, PolicyLevel)

Wenn sie in einer abgeleiteten Klasse außer Kraft gesetzt werden, rekonstruieren Sie Eigenschaften und internen Zustand, die spezifisch für eine abgeleitete Codegruppe aus der angegebenen Klasse sind SecurityElement.

(Geerbt von CodeGroup)
RemoveChild(CodeGroup)

Entfernt die angegebene untergeordnete Codegruppe.

(Geerbt von CodeGroup)
ResetConnectAccess()

Entfernt alle Verbindungszugriffsinformationen für die aktuelle Codegruppe.

Resolve(Evidence)

Behebt die Richtlinie für die Codegruppe und deren Nachfolger für eine Reihe von Nachweisen.

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 des aktuellen Zustands.

(Geerbt von CodeGroup)
ToXml(PolicyLevel)

Erstellt eine XML-Codierung des Sicherheitsobjekts, des aktuellen Zustands und der Richtlinienebene, in der der Code vorhanden ist.

(Geerbt von CodeGroup)

Gilt für: