NetCodeGroup Klasa

Definicja

Przyznaje uprawnienia sieci Web do witryny, z której został pobrany zestaw. Klasa ta nie może być dziedziczona.

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
Dziedziczenie
NetCodeGroup
Atrybuty

Przykłady

Poniższy przykład kodu przedstawia tworzenie NetCodeGroup i dodawanie CodeConnectAccess obiektów dla kodu pobranego przy użyciu schematu 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();
}

Uwagi

Grupy kodu to bloki konstrukcyjne zasad zabezpieczeń dostępu kodu. Każdy poziom zasad składa się z głównej grupy kodu, która może mieć co najmniej jedną podrzędną grupę kodu. Każda podrzędna grupa kodu może mieć własne podrzędne grupy kodu; to zachowanie rozciąga się na dowolną liczbę poziomów, tworząc drzewo. Każda grupa kodu ma warunek członkostwa, który określa, czy dany zestaw należy do grupy, na podstawie dowodów dla tego zestawu. Tylko grupy kodu, których warunki członkostwa są zgodne z danym zestawem wraz z podrzędnymi grupami kodu, stosują zasady zabezpieczeń dostępu kodu.

NetCodeGroup ma taką samą semantykę scalania, jak UnionCodeGroupw przypadku ; tworzy ona związek PolicyStatement obiektów wszystkich pasujących podrzędnych grup kodu i PolicyStatement generowanych na podstawie dowodów wejściowych Url . NetCodeGroup Jednak zwraca uprawnienie zawierające dynamicznie obliczaneWebPermission, które przyznaje dostęp do lokacji, z której jest uruchamiany kod. UnionCodeGroup Po prostu zwraca statyczny zestaw uprawnień.

Po utworzeniu NetCodeGroup obiektu zawiera on domyślne reguły dostępu do połączeń pokazane w poniższej tabeli.

Schemat identyfikatora URI Reguła
— plik Nie jest dozwolony dostęp do połączenia z serwerem pochodzenia.
http Dostęp http i HTTPS jest dozwolony przy użyciu portu początkowego.
https Dostęp HTTPS jest dozwolony przy użyciu portu początkowego.

Można kontrolować schemat i port, którego kod może używać podczas nawiązywania połączenia z powrotem z jego lokacją pochodzenia, przekazując CodeConnectAccess obiekt z odpowiednimi Scheme wartościami właściwości i Port do AddConnectAccess metody . Można utworzyć regułę dostępu do połączenia, która ma zastosowanie, gdy schemat pochodzenia nie jest obecny w dowodach lub nie jest rozpoznawany przez określenie AbsentOriginScheme ("") jako schematu. Możesz również utworzyć regułę dostępu do połączenia, która ma zastosowanie, gdy nie ma reguły dostępu do połączenia z pasującym schematem, określając AnyOtherOriginScheme jako schemat ("*").

Uwaga

Jeśli kod nie przesyła schematu identyfikatora URI jako dowód, dostęp jest dozwolony przy użyciu dowolnego schematu z powrotem do lokacji źródłowej.

Konstruktory

NetCodeGroup(IMembershipCondition)

Inicjuje nowe wystąpienie klasy NetCodeGroup.

Pola

AbsentOriginScheme

Zawiera wartość używaną do określania dostępu do połączenia dla kodu z nieznanym lub nierozpoznanym schematem pochodzenia.

AnyOtherOriginScheme

Zawiera wartość używaną do określania dowolnego innego nieokreślonego schematu pochodzenia.

Właściwości

AttributeString

Pobiera ciąg reprezentujący atrybuty instrukcji zasad dla grupy kodu.

Children

Pobiera lub ustawia uporządkowaną listę podrzędnych grup kodu grupy kodu.

(Odziedziczone po CodeGroup)
Description

Pobiera lub ustawia opis grupy kodu.

(Odziedziczone po CodeGroup)
MembershipCondition

Pobiera lub ustawia warunek członkostwa grupy kodu.

(Odziedziczone po CodeGroup)
MergeLogic

Pobiera logikę używaną do scalania grup.

Name

Pobiera lub ustawia nazwę grupy kodu.

(Odziedziczone po CodeGroup)
PermissionSetName

Pobiera nazwę NamedPermissionSet grupy kodu.

PolicyStatement

Pobiera lub ustawia instrukcję zasad skojarzona z grupą kodu.

(Odziedziczone po CodeGroup)

Metody

AddChild(CodeGroup)

Dodaje podrzędną grupę kodu do bieżącej grupy kodu.

(Odziedziczone po CodeGroup)
AddConnectAccess(String, CodeConnectAccess)

Dodaje określony dostęp połączenia do bieżącej grupy kodu.

Copy()

Tworzy głęboką kopię bieżącej grupy kodu.

CreateXml(SecurityElement, PolicyLevel)

Po zastąpieniu w klasie pochodnej serializuje właściwości i stan wewnętrzny specyficzny dla pochodnej grupy kodu i dodaje serializacji do określonego SecurityElement.

(Odziedziczone po CodeGroup)
Equals(CodeGroup, Boolean)

Określa, czy określona grupa kodu jest równoważna bieżącej grupie kodu, sprawdza również podrzędne grupy kodu, jeśli określono.

(Odziedziczone po CodeGroup)
Equals(Object)

Określa, czy określona grupa kodu jest równoważna bieżącej grupie kodu.

Equals(Object)

Określa, czy określona grupa kodu jest równoważna bieżącej grupie kodu.

(Odziedziczone po CodeGroup)
FromXml(SecurityElement)

Rekonstruuje obiekt zabezpieczeń o danym stanie z kodowania XML.

(Odziedziczone po CodeGroup)
FromXml(SecurityElement, PolicyLevel)

Rekonstruuje obiekt zabezpieczeń z danym stanem i poziomem zasad na podstawie kodowania XML.

(Odziedziczone po CodeGroup)
GetConnectAccessRules()

Pobiera informacje o dostępie do połączenia dla bieżącej grupy kodu.

GetHashCode()

Pobiera kod skrótu bieżącej grupy kodu.

GetHashCode()

Pobiera kod skrótu bieżącej grupy kodu.

(Odziedziczone po CodeGroup)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ParseXml(SecurityElement, PolicyLevel)

Po przesłonięciu w klasie pochodnej właściwości i stan wewnętrzny specyficzny dla pochodnej grupy kodu z określonego SecurityElementelementu .

(Odziedziczone po CodeGroup)
RemoveChild(CodeGroup)

Usuwa określoną podrzędną grupę kodu.

(Odziedziczone po CodeGroup)
ResetConnectAccess()

Usuwa wszystkie informacje o dostępie do połączenia dla bieżącej grupy kodu.

Resolve(Evidence)

Rozwiązuje zasady dla grupy kodu i jej elementów potomnych dla zestawu dowodów.

ResolveMatchingCodeGroups(Evidence)

Rozwiązuje pasujące grupy kodu.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)
ToXml()

Tworzy kodowanie XML obiektu zabezpieczeń i jego bieżący stan.

(Odziedziczone po CodeGroup)
ToXml(PolicyLevel)

Tworzy kodowanie XML obiektu zabezpieczeń, jego bieżący stan i poziom zasad, w którym istnieje kod.

(Odziedziczone po CodeGroup)

Dotyczy