AppDomainManager Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Yönetilmeyen bir konağın yönetilen eşdeğerini sağlar.
public ref class AppDomainManager : MarshalByRefObject
[System.Runtime.InteropServices.ComVisible(true)]
public class AppDomainManager : MarshalByRefObject
[System.Runtime.InteropServices.ComVisible(true)]
[System.Security.SecurityCritical]
public class AppDomainManager : MarshalByRefObject
[<System.Runtime.InteropServices.ComVisible(true)>]
type AppDomainManager = class
inherit MarshalByRefObject
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Security.SecurityCritical>]
type AppDomainManager = class
inherit MarshalByRefObject
Public Class AppDomainManager
Inherits MarshalByRefObject
- Devralma
- Öznitelikler
Örnekler
Aşağıdaki örnekte uygulamasının çok basit bir uygulaması gösterilmektedir AppDomainManager.
// To replace the default AppDomainManager, identify the
// replacement assembly and replacement type in the
// APPDOMAIN_MANAGER_ASM and APPDOMAIN_MANAGER_TYPE
// environment variables. For example:
// set APPDOMAIN_MANAGER_TYPE=library.TestAppDomainManager
// set APPDOMAIN_MANAGER_ASM=library, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f1368f7b12a08d72
using System;
using System.Collections;
using System.Net;
using System.Reflection;
using System.Security;
using System.Security.Policy;
using System.Security.Principal;
using System.Threading;
using System.Runtime.InteropServices;
[assembly: System.Security.AllowPartiallyTrustedCallersAttribute()]
namespace MyNamespace
{
[GuidAttribute("F4D15099-3407-4A7E-A607-DEA440CF3891")]
public class MyAppDomainManager : AppDomainManager
{
private HostSecurityManager mySecurityManager = null;
public MyAppDomainManager()
{
Console.WriteLine(" My AppDomain Manager ");
mySecurityManager = AppDomain.CurrentDomain.CreateInstanceAndUnwrap(
"CustomSecurityManager, Version=1.0.0.3, Culture=neutral, " +
"PublicKeyToken=5659fc598c2a503e",
"MyNamespace.MySecurityManager") as HostSecurityManager;
Console.WriteLine(" Custom Security Manager Created.");
}
public override void InitializeNewDomain(AppDomainSetup appDomainInfo)
{
Console.Write("Initialize new domain called: ");
Console.WriteLine(AppDomain.CurrentDomain.FriendlyName);
InitializationFlags =
AppDomainManagerInitializationOptions.RegisterWithHost;
}
public override HostSecurityManager HostSecurityManager
{
get
{
return mySecurityManager;
}
}
}
}
' To replace the default AppDomainManager, identify the
' replacement assembly and replacement type in the
' APPDOMAIN_MANAGER_ASM and APPDOMAIN_MANAGER_TYPE
' environment variables. For example:
' set APPDOMAIN_MANAGER_TYPE=library.TestAppDomainManager
' set APPDOMAIN_MANAGER_ASM=library, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f1368f7b12a08d72
Imports System.Collections
Imports System.Net
Imports System.Reflection
Imports System.Security
Imports System.Security.Permissions
Imports System.Security.Policy
Imports System.Security.Principal
Imports System.Threading
Imports System.Runtime.InteropServices
<assembly: System.Security.AllowPartiallyTrustedCallersAttribute()>
<SecurityPermissionAttribute(SecurityAction.LinkDemand, _
Flags:=SecurityPermissionFlag.Infrastructure)> _
<SecurityPermissionAttribute(SecurityAction.InheritanceDemand, _
Flags:=SecurityPermissionFlag.Infrastructure)> _
<GuidAttribute("F4D15099-3407-4A7E-A607-DEA440CF3891")> _
Public Class MyAppDomainManager
Inherits AppDomainManager
Private mySecurityManager As HostSecurityManager = Nothing
Public Sub New()
Console.WriteLine(" My AppDomain Manager ")
mySecurityManager = AppDomain.CurrentDomain.CreateInstanceAndUnwrap( _
"CustomSecurityManager, Version=1.0.0.3, Culture=neutral, " & _
"PublicKeyToken=5659fc598c2a503e", "MyNamespace.MySecurityManager")
Console.WriteLine(" Custom Security Manager Created.")
End Sub
Public Overrides Sub InitializeNewDomain(ByVal appDomainInfo _
As AppDomainSetup)
Console.Write("Initialize new domain called: ")
Console.WriteLine(AppDomain.CurrentDomain.FriendlyName)
InitializationFlags = _
AppDomainManagerInitializationOptions.RegisterWithHost
End Sub
Public Overrides ReadOnly Property HostSecurityManager() _
As HostSecurityManager
Get
Return mySecurityManager
End Get
End Property
End Class
Açıklamalar
Önemli
ASP.NET'de uygulama etki alanını yapılandırmak için kullanmayın AppDomainManager . ASP.NET yapılandırmanın konak tarafından işlenmesi gerekir.
sınıfının uygulanması AppDomainManager , bir barındırma uygulamasının yeni uygulama etki alanlarının oluşturulmasına katılmasına olanak tanır. Varsayılan AppDomainManagerdeğerini değiştirmek için, APPDOMAIN_MANAGER_ASM ve APPDOMAIN_MANAGER_TYPE ortam değişkenlerinde değiştirmenin AppDomainManager derlemesini ve türünü tanımlayın veya yapılandırma dosyanızda appDomainManagerAssembly> ve appDomainManagerType öğelerini kullanın<.>< Derlemeye tam olarak güvenilmeli ve genel derleme önbelleğinde veya başlangıç uygulamasının dizininde bulunmalıdır. Tür ve derleme adları, ortam değişkenlerinde tam olarak nitelenmelidir. Örnek:
set APPDOMAIN_MANAGER_TYPE=MyNamespace.TestAppDomainManager
set APPDOMAIN_MANAGER_ASM=customappDomainmanager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f1368f7b12a08d72
Önemli
Alt sınıfınızı AppDomainManager içeren derleme koşullu AllowPartiallyTrustedCallersAttribute (APTCA) özniteliğiyle işaretlenmiş derlemelere bağımlıysa, uygulama etki alanları oluşturmak için kullandığınız özelliğine PartialTrustVisibleAssembliesAppDomainSetup geçirdiğiniz derlemeleri listeye eklemeniz gerekir. Aksi takdirde, koşullu APTCA özniteliğiyle işaretlenmiş derlemeler devre dışı bırakılır.
AppDomainManager, yönetilmeyen konağın yönetilen eşdeğeridir. Bir AppDomainManager nesne, bir işlemde yeni uygulama etki alanlarının oluşturulmasına katılır ve diğer yönetilen kod çalışmadan önce yeniyi AppDomain özelleştirebilir. , AppDomainManager ortak dil çalışma zamanı yürütmesinin diğer yönlerine katılan konak yöneticileri de sağlayabilir. Örneğin, bir AppDomainManager uygulama etki alanının güvenlik kararlarına katılan bir HostSecurityManager nesneyi tanımlayabilir.
Not
Yalnızca genel bütünleştirilmiş kod önbelleğindeki derlemeler gibi verilen FullTrust
veya yönteminde AppDomain.CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[]) olarak fullTrustAssemblies
tanımlanan derlemeler oluşturucuya ve yöntemine AppDomainManagerInitializeNewDomain yüklenebilir.
Not
Bu sınıf, sınıf düzeyinde bir bağlantı talebi ve devralma talebi içerir. Hemen SecurityException çağıranın veya türetilen sınıfın altyapı izni olmadığında bir oluşturulur. Güvenlik talepleri hakkında ayrıntılı bilgi için bkz. Bağlantı Talepleri ve Devralma Talepleri.
Oluşturucular
AppDomainManager() |
AppDomainManager sınıfının yeni bir örneğini başlatır. |
Özellikler
ApplicationActivator |
Etki alanı için eklentilerin ve bildirim tabanlı uygulamaların etkinleştirilmesini işleyen uygulama etkinleştiricisini alır. |
EntryAssembly |
Bir uygulama için giriş derlemesini alır. |
HostExecutionContextManager |
Yürütme bağlamının akışını yöneten konak yürütme bağlam yöneticisini alır. |
HostSecurityManager |
Uygulama etki alanı için güvenlik kararlarına katılan konak güvenlik yöneticisini alır. |
InitializationFlags |
Özel uygulama etki alanı yöneticileri için başlatma bayraklarını alır. |
Yöntemler
CheckSecuritySettings(SecurityState) |
Belirtilen işleme uygulama etki alanında izin verilip verilmeyeceğini gösterir. |
CreateDomain(String, Evidence, AppDomainSetup) |
Yeni veya var olan bir uygulama etki alanını döndürür. |
CreateDomainHelper(String, Evidence, AppDomainSetup) |
Uygulama etki alanı oluşturmak için yardımcı bir yöntem sağlar. |
CreateObjRef(Type) |
Uzak bir nesneyle iletişim kurmak için kullanılan bir ara sunucu oluşturmak için gereken tüm ilgili bilgileri içeren bir nesne oluşturur. (Devralındığı yer: MarshalByRefObject) |
Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
GetLifetimeService() |
Geçersiz.
Bu örnek için yaşam süresi ilkesini denetleen geçerli yaşam süresi hizmet nesnesini alır. (Devralındığı yer: MarshalByRefObject) |
GetType() |
Type Geçerli örneğini alır. (Devralındığı yer: Object) |
InitializeLifetimeService() |
Geçersiz.
Bu örneğin yaşam süresi ilkesini denetlemek için bir yaşam süresi hizmet nesnesi alır. (Devralındığı yer: MarshalByRefObject) |
InitializeNewDomain(AppDomainSetup) |
Yeni uygulama etki alanını başlatır. |
MemberwiseClone() |
Geçerli Objectöğesinin sığ bir kopyasını oluşturur. (Devralındığı yer: Object) |
MemberwiseClone(Boolean) |
Geçerli MarshalByRefObject nesnenin sığ bir kopyasını oluşturur. (Devralındığı yer: MarshalByRefObject) |
ToString() |
Geçerli nesneyi temsil eden dizeyi döndürür. (Devralındığı yer: Object) |