NetCodeGroup Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
- 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) |