Udostępnij za pośrednictwem


NetCodeGroup Klasa

Definicja

Przyznaje uprawnienia sieci Web do witryny, z której został pobrany zestaw. Tej klasy nie można dziedziczyć.

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

W poniższym przykładzie kodu pokazano tworzenie NetCodeGroup i dodawanie CodeConnectAccess obiektów do 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 ich podrzędnymi grupami kodu, stosują zasady zabezpieczeń dostępu do kodu.

NetCodeGroup ma taką samą semantykę scalania jak UnionCodeGroupw przypadku elementu ; tworzy on związek PolicyStatement obiektów wszystkich pasujących grup kodu podrzędnego i PolicyStatement generowanych na podstawie dowodów wejściowych Url . NetCodeGroup Zwraca jednak 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 elementu NetCodeGroup 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 źródła.
https Dostęp HTTPS jest dozwolony przy użyciu portu źródła.

Można kontrolować schemat i port, którego kod może używać podczas nawiązywania połączenia z powrotem z jego lokacją źródła, 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żna również utworzyć regułę dostępu do połączenia, która ma zastosowanie, gdy nie ma reguły dostępu do połączenia ze schematem dopasowania, określając AnyOtherOriginScheme jako schemat ("*").

Uwaga / Notatka

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

Nazwa Opis
NetCodeGroup(IMembershipCondition)

Inicjuje nowe wystąpienie klasy NetCodeGroup.

Pola

Nazwa Opis
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

Nazwa Opis
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ę do użycia 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

Nazwa Opis
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 SecurityElementelementu .

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

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

(Odziedziczone po CodeGroup)
FromXml(SecurityElement)

Rekonstruuje obiekt zabezpieczeń o danym stanie z 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()

Pobiera Type bieżącego wystąpienia.

(Odziedziczone po Object)
MemberwiseClone()

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

(Odziedziczone po Object)
ParseXml(SecurityElement, PolicyLevel)

Po zastąpieniu w klasie pochodnej rekonstruuje 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żącego stanu.

(Odziedziczone po CodeGroup)
ToXml(PolicyLevel)

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

(Odziedziczone po CodeGroup)

Dotyczy