Bagikan melalui


NetCodeGroup Kelas

Definisi

Memberikan izin Web ke situs tempat assembly diunduh. Kelas ini tidak dapat diwariskan.

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
Warisan
NetCodeGroup
Atribut

Contoh

Contoh kode berikut menunjukkan pembuatan NetCodeGroup dan penambahan CodeConnectAccess objek untuk kode yang diunduh menggunakan skema 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();
}

Keterangan

Grup kode adalah blok penyusun kebijakan keamanan akses kode. Setiap tingkat kebijakan terdiri dari grup kode akar yang dapat memiliki satu atau beberapa grup kode anak. Setiap grup kode anak dapat memiliki grup kode anak sendiri; perilaku ini meluas ke sejumlah tingkatan, membentuk pohon. Setiap grup kode memiliki kondisi keanggotaan yang menentukan apakah rakitan tertentu milik grup, berdasarkan bukti untuk perakitan tersebut. Hanya grup kode yang kondisi keanggotaannya cocok dengan rakitan tertentu, bersama dengan grup kode anak mereka, yang menerapkan kebijakan keamanan akses kode.

NetCodeGroup memiliki semantik penggabungan yang UnionCodeGroupsama dengan ; membentuk penyatuan PolicyStatement objek dari semua grup kode anak yang cocok dan PolicyStatement dihasilkan dari bukti input Url . Namun, NetCodeGroup mengembalikan izin yang berisi yang dihitung WebPermission secara dinamis yang memberikan akses sambungkan ke situs tempat kode dijalankan; UnionCodeGroup hanya mengembalikan kumpulan izin statis.

Saat dibuat, aturan tersebut berisi aturan akses koneksi default yang NetCodeGroup diperlihatkan dalam tabel berikut.

Skema URI Aturan
file Tidak ada akses koneksi ke server asal yang diizinkan.
http Akses HTTP dan HTTPS diizinkan menggunakan port asal.
https Akses HTTPS diizinkan menggunakan port asal.

Anda dapat mengontrol skema dan port yang kodenya diizinkan untuk digunakan saat menyambungkan kembali ke situs asalnya dengan meneruskan CodeConnectAccess objek dengan nilai properti dan Port yang sesuai Scheme ke AddConnectAccess metode . Anda dapat membuat aturan akses koneksi yang berlaku ketika skema asal tidak ada dalam bukti atau tidak dikenali dengan menentukan AbsentOriginScheme ("") sebagai skema. Anda juga dapat membuat aturan akses koneksi yang berlaku ketika tidak ada aturan akses koneksi dengan skema yang cocok dengan menentukan AnyOtherOriginScheme ("*") sebagai skema.

Catatan

Jika kode tidak mengirimkan skema URI sebagai bukti, akses diizinkan menggunakan skema apa pun kembali ke situs asal.

Konstruktor

NetCodeGroup(IMembershipCondition)

Menginisialisasi instans baru kelas NetCodeGroup.

Bidang

AbsentOriginScheme

Berisi nilai yang digunakan untuk menentukan akses koneksi untuk kode dengan skema asal yang tidak dikenal atau tidak dikenal.

AnyOtherOriginScheme

Berisi nilai yang digunakan untuk menentukan skema asal lain yang tidak ditentukan.

Properti

AttributeString

Mendapatkan representasi string dari atribut pernyataan kebijakan untuk grup kode.

Children

Mendapatkan atau menetapkan daftar yang diurutkan dari grup kode anak dari grup kode.

(Diperoleh dari CodeGroup)
Description

Mendapatkan atau mengatur deskripsi grup kode.

(Diperoleh dari CodeGroup)
MembershipCondition

Mendapatkan atau mengatur kondisi keanggotaan grup kode.

(Diperoleh dari CodeGroup)
MergeLogic

Mendapatkan logika yang akan digunakan untuk menggabungkan grup.

Name

Mendapatkan atau mengatur nama grup kode.

(Diperoleh dari CodeGroup)
PermissionSetName

Mendapatkan nama NamedPermissionSet untuk grup kode.

PolicyStatement

Mendapatkan atau menetapkan pernyataan kebijakan yang terkait dengan grup kode.

(Diperoleh dari CodeGroup)

Metode

AddChild(CodeGroup)

Menambahkan grup kode anak ke grup kode saat ini.

(Diperoleh dari CodeGroup)
AddConnectAccess(String, CodeConnectAccess)

Menambahkan akses koneksi yang ditentukan ke grup kode saat ini.

Copy()

Membuat salinan mendalam dari grup kode saat ini.

CreateXml(SecurityElement, PolicyLevel)

Ketika ditimpa dalam kelas turunan, menserialisasikan properti dan status internal khusus untuk grup kode turunan dan menambahkan serialisasi ke yang ditentukan SecurityElement.

(Diperoleh dari CodeGroup)
Equals(CodeGroup, Boolean)

Menentukan apakah grup kode yang ditentukan setara dengan grup kode saat ini, memeriksa grup kode anak juga, jika ditentukan.

(Diperoleh dari CodeGroup)
Equals(Object)

Menentukan apakah grup kode yang ditentukan setara dengan grup kode saat ini.

Equals(Object)

Menentukan apakah grup kode yang ditentukan setara dengan grup kode saat ini.

(Diperoleh dari CodeGroup)
FromXml(SecurityElement)

Rekonstruksi objek keamanan dengan status tertentu dari pengodean XML.

(Diperoleh dari CodeGroup)
FromXml(SecurityElement, PolicyLevel)

Rekonstruksi objek keamanan dengan status dan tingkat kebijakan tertentu dari pengodean XML.

(Diperoleh dari CodeGroup)
GetConnectAccessRules()

Mendapatkan informasi akses koneksi untuk grup kode saat ini.

GetHashCode()

Mendapatkan kode hash dari grup kode saat ini.

GetHashCode()

Mendapatkan kode hash dari grup kode saat ini.

(Diperoleh dari CodeGroup)
GetType()

Mendapatkan instans Type saat ini.

(Diperoleh dari Object)
MemberwiseClone()

Membuat salinan dangkal dari yang saat ini Object.

(Diperoleh dari Object)
ParseXml(SecurityElement, PolicyLevel)

Ketika ditimpa di kelas turunan, rekonstruksi properti dan status internal khusus untuk grup kode turunan dari yang ditentukan SecurityElement.

(Diperoleh dari CodeGroup)
RemoveChild(CodeGroup)

Menghapus grup kode anak yang ditentukan.

(Diperoleh dari CodeGroup)
ResetConnectAccess()

Menghapus semua informasi akses koneksi untuk grup kode saat ini.

Resolve(Evidence)

Menyelesaikan kebijakan untuk grup kode dan keturunannya untuk serangkaian bukti.

ResolveMatchingCodeGroups(Evidence)

Menyelesaikan grup kode yang cocok.

ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)
ToXml()

Membuat pengodean XML objek keamanan dan statusnya saat ini.

(Diperoleh dari CodeGroup)
ToXml(PolicyLevel)

Membuat pengodean XML objek keamanan, statusnya saat ini, dan tingkat kebijakan tempat kode berada.

(Diperoleh dari CodeGroup)

Berlaku untuk