NetCodeGroup Třída

Definice

Udělí webu oprávnění k webu, ze kterého bylo sestavení staženo. Tuto třídu nelze zdědit.

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
Dědičnost
NetCodeGroup
Atributy

Příklady

Následující příklad kódu ukazuje vytvoření NetCodeGroup a přidání CodeConnectAccess objektů pro kód stažený pomocí schématu 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();
}

Poznámky

Skupiny kódu jsou stavebními bloky zásad zabezpečení přístupu kódu. Každá úroveň zásad se skládá z kořenové skupiny kódu, která může mít jednu nebo více podřízených skupin kódu. Každá podřízená skupina kódu může mít své vlastní podřízené skupiny kódu; toto chování se rozšiřuje na libovolný počet úrovní, které tvoří strom. Každá skupina kódu má podmínku členství, která určuje, jestli dané sestavení patří do skupiny na základě důkazů pro toto sestavení. Zásady zabezpečení přístupu kódu používají pouze skupiny kódu, jejichž podmínky členství odpovídají danému sestavení spolu s podřízenými skupinami kódu.

NetCodeGroup má stejnou sémantiku sloučení jako UnionCodeGroupsémantiku ; tvoří sjednocení objektů všech odpovídajících PolicyStatement podřízených skupin kódu a generuje PolicyStatement ze vstupních Url důkazů. Vrátí však oprávnění obsahující dynamicky vypočítané WebPermission oprávnění, které uděluje přístup k webu, NetCodeGroup ze kterého se kód spouští. UnionCodeGroup Jednoduše vrátí statickou sadu oprávnění.

NetCodeGroup Po vytvoření obsahuje výchozí pravidla přístupu k připojení uvedená v následující tabulce.

Schéma identifikátoru URI Pravidlo
– soubor Není povolen přístup k zdrojovému serveru.
HTTP Přístup HTTP a HTTPS je povolený pomocí zdrojového portu.
HTTPS Přístup HTTPS je povolený pomocí původního portu.

Můžete řídit schéma a port, který kód má povoleno používat při připojování zpět k jeho lokalitě původu předáním CodeConnectAccess objektu s příslušnými Scheme hodnotami a Port hodnoty vlastností metodě AddConnectAccess . Můžete vytvořit pravidlo pro přístup k připojení, které platí, když v důkazu není schéma původu nebo není rozpoznáno zadáním AbsentOriginScheme ("") jako schématu. Můžete také vytvořit pravidlo přístupu k připojení, které se použije, pokud neexistuje žádné pravidlo přístupu k připojení s odpovídajícím schématem zadáním AnyOtherOriginScheme (*) jako schématu.

Poznámka

Pokud kód neodesílá schéma identifikátoru URI jako důkaz, je přístup povolen pomocí jakéhokoli schématu zpět na původní web.

Konstruktory

NetCodeGroup(IMembershipCondition)

Inicializuje novou instanci NetCodeGroup třídy.

Pole

AbsentOriginScheme

Obsahuje hodnotu použitou k zadání přístupu k připojení pro kód s neznámým nebo nerozpoznaným schématem původu.

AnyOtherOriginScheme

Obsahuje hodnotu použitou k určení jakéhokoli jiného nezadaného schématu původu.

Vlastnosti

AttributeString

Získá řetězcové znázornění atributů příkazu zásady pro skupinu kódu.

Children

Získá nebo nastaví seřazený seznam podřízených skupin kódu skupiny kódu.

(Zděděno od CodeGroup)
Description

Získá nebo nastaví popis skupiny kódu.

(Zděděno od CodeGroup)
MembershipCondition

Získá nebo nastaví podmínku členství ve skupině kódu.

(Zděděno od CodeGroup)
MergeLogic

Získá logiku, která se má použít pro slučování skupin.

Name

Získá nebo nastaví název skupiny kódu.

(Zděděno od CodeGroup)
PermissionSetName

Získá název NamedPermissionSet skupiny kódu.

PolicyStatement

Získá nebo nastaví příkaz zásad přidružený ke skupině kódu.

(Zděděno od CodeGroup)

Metody

AddChild(CodeGroup)

Přidá do aktuální skupiny kódu podřízenou skupinu kódu.

(Zděděno od CodeGroup)
AddConnectAccess(String, CodeConnectAccess)

Přidá zadaný přístup k připojení do aktuální skupiny kódu.

Copy()

Vytvoří hlubokou kopii aktuální skupiny kódu.

CreateXml(SecurityElement, PolicyLevel)

Při přepsání v odvozené třídě serializuje vlastnosti a vnitřní stav specifické pro odvozenou skupinu kódu a přidá serializaci do zadané SecurityElement.

(Zděděno od CodeGroup)
Equals(CodeGroup, Boolean)

Určuje, zda je zadaná skupina kódu ekvivalentní aktuální skupině kódu, zkontroluje také podřízené skupiny kódu, pokud je zadána.

(Zděděno od CodeGroup)
Equals(Object)

Určuje, zda zadaná skupina kódu odpovídá aktuální skupině kódu.

Equals(Object)

Určuje, zda je zadaná skupina kódu ekvivalentní aktuální skupině kódu.

(Zděděno od CodeGroup)
FromXml(SecurityElement)

Rekonstruuje objekt zabezpečení s daným stavem z kódování XML.

(Zděděno od CodeGroup)
FromXml(SecurityElement, PolicyLevel)

Rekonstruuje objekt zabezpečení s danou úrovní stavu a zásad z kódování XML.

(Zděděno od CodeGroup)
GetConnectAccessRules()

Získá informace o přístupu k připojení pro aktuální skupinu kódu.

GetHashCode()

Získá kód hash aktuální skupiny kódu.

GetHashCode()

Získá hash kód aktuální skupiny kódu.

(Zděděno od CodeGroup)
GetType()

Type Získá aktuální instanci.

(Zděděno od Object)
MemberwiseClone()

Vytvoří použádnou kopii aktuálního souboru Object.

(Zděděno od Object)
ParseXml(SecurityElement, PolicyLevel)

Při přepsání v odvozené třídě rekonstruuje vlastnosti a vnitřní stav specifické pro odvozenou skupinu kódu ze zadané SecurityElement.

(Zděděno od CodeGroup)
RemoveChild(CodeGroup)

Odebere zadanou podřízenou skupinu kódu.

(Zděděno od CodeGroup)
ResetConnectAccess()

Odebere všechny informace o přístupu k připojení pro aktuální skupinu kódu.

Resolve(Evidence)

Řeší zásady pro skupinu kódu a její potomky pro sadu důkazů.

ResolveMatchingCodeGroups(Evidence)

Řeší odpovídající skupiny kódu.

ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)
ToXml()

Vytvoří kódování XML objektu zabezpečení a jeho aktuální stav.

(Zděděno od CodeGroup)
ToXml(PolicyLevel)

Vytvoří kódování XML objektu zabezpečení, jeho aktuální stav a úroveň zásad, ve které kód existuje.

(Zděděno od CodeGroup)

Platí pro