Sdílet prostřednictvím


NetCodeGroup Třída

Definice

Uděluje webu oprávnění k webu, ze kterého bylo sestavení staženo. Tato třída se nemůže dě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 vztahuje 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í a jejich podřízeným skupinám kódu.

NetCodeGroup má stejnou sémantiku slučování jako součátek UnionCodeGroup; vytváří sjednocení PolicyStatement objektů všech odpovídajících podřízených skupin kódu a PolicyStatement generuje ze vstupního Url důkazu. NetCodeGroup Vrátí však oprávnění obsahující dynamicky počítané WebPermission oprávnění, které uděluje přístup připojení k webu, ze kterého se kód spouští. UnionCodeGroup Jednoduše vrátí sadu statických oprávnění.

NetCodeGroup Při 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 připojení k serveru původu.
HTTP Přístup HTTP a HTTPS je povolený pomocí portu původu.
HTTPS Přístup HTTPS je povolený pomocí portu původu.

Schéma a port, které kód může použít při připojování zpět k lokalitě původu, můžete řídit předáním objektu CodeConnectAccess s příslušnými Scheme hodnotami a Port hodnot vlastností metodě AddConnectAccess . Můžete vytvořit pravidlo přístupu připojení, které se použije v případě, že schéma původu není přítomno v důkazu 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 v případě, že neexistuje žádné pravidlo přístupu k připojení s odpovídajícím schématem, a to tak, AnyOtherOriginScheme že jako schéma zadáte (*).

Poznámka

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

Konstruktory

NetCodeGroup(IMembershipCondition)

Inicializuje novou instanci NetCodeGroup třídy.

Pole

AbsentOriginScheme

Obsahuje hodnotu, která slouží 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í libovolného jiného neurčeného schématu původu.

Vlastnosti

AttributeString

Získá řetězcovou reprezentaci atributů zásad příkazu 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í skupiny 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 pro skupinu 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á podřízenou skupinu kódu do aktuální skupiny kódu.

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

Přidá zadaný přístup připojení k aktuální skupině 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 interní 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, a pokud je zadána, zkontroluje také podřízené skupiny kódu.

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

Určuje, zda je zadaná skupina kódu ekvivalentní 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 daným stavem a úrovní zásad z kódování XML.

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

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

GetHashCode()

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

GetHashCode()

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

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

Získá aktuální Type instanci.

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

Vytvoří mělkou kopii aktuálního Objectsouboru .

(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é SecurityElementtřídy .

(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ího stavu.

(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é existuje kód.

(Zděděno od CodeGroup)

Platí pro