AppDomainManager Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Zapewnia zarządzany odpowiednik niezarządzanego hosta.
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
- Dziedziczenie
- Atrybuty
Przykłady
W poniższym przykładzie przedstawiono bardzo prostą implementację elementu 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
Uwagi
Ważne
Nie należy używać AppDomainManager do konfigurowania domeny aplikacji w ASP.NET. W ASP.NET konfiguracja musi być obsługiwana przez hosta.
Implementacja AppDomainManager klasy umożliwia aplikacji hostingowej uczestnictwo w tworzeniu nowych domen aplikacji. Aby zastąpić wartość domyślną AppDomainManager, zidentyfikuj zestaw i typ zastąpienia AppDomainManager w zmiennych środowiskowych APPDOMAIN_MANAGER_ASM i APPDOMAIN_MANAGER_TYPE lub użyj <elementów appDomainManagerAssembly> i <appDomainManagerType> w pliku konfiguracji. Zestaw musi być w pełni zaufany i zawarty w globalnej pamięci podręcznej zestawów lub katalogu początkowej aplikacji. Nazwy typów i zestawów muszą być w pełni kwalifikowane w zmiennych środowiskowych. Na przykład:
set APPDOMAIN_MANAGER_TYPE=MyNamespace.TestAppDomainManager
set APPDOMAIN_MANAGER_ASM=customappDomainmanager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f1368f7b12a08d72
Ważne
Jeśli zestaw zawierający podklasę AppDomainManager zależy od zestawów oznaczonych atrybutem warunkowym AllowPartiallyTrustedCallersAttribute (APTCA), należy uwzględnić te zestawy na liście, które są przekazywane do właściwości używanej AppDomainSetup do PartialTrustVisibleAssemblies tworzenia domen aplikacji. W przeciwnym razie zestawy oznaczone atrybutem APTCA warunkowego zostaną wyłączone.
Jest AppDomainManager to zarządzany odpowiednik niezarządzanego hosta. Obiekt AppDomainManager uczestniczy w tworzeniu nowych domen aplikacji w procesie i może dostosować nowy AppDomain przed innymi przebiegami kodu zarządzanego. Może AppDomainManager również dostarczać menedżerom hostów, którzy uczestniczą w innych aspektach wykonywania środowiska uruchomieniowego języka wspólnego. Można na przykład AppDomainManager zidentyfikować HostSecurityManager obiekt, który uczestniczy w decyzjach dotyczących zabezpieczeń domeny aplikacji.
Uwaga
Tylko zestawy przyznane FullTrust
, takie jak zestawy w globalnej pamięci podręcznej zestawów lub zidentyfikowane fullTrustAssemblies
jako w AppDomain.CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[]) metodzie, można załadować w konstruktorze i metodzie AppDomainManagerInitializeNewDomain .
Uwaga
Ta klasa zawiera żądanie łącza i żądanie dziedziczenia na poziomie klasy. Element jest SecurityException zgłaszany, gdy obiekt wywołujący natychmiast lub klasa pochodna nie ma uprawnień infrastruktury. Aby uzyskać szczegółowe informacje na temat wymagań dotyczących zabezpieczeń, zobacz Łączenie żądań i żądań dziedziczenia.
Konstruktory
AppDomainManager() |
Inicjuje nowe wystąpienie klasy AppDomainManager. |
Właściwości
ApplicationActivator |
Pobiera aktywator aplikacji, który obsługuje aktywację dodatków i aplikacji opartych na manifeście dla domeny. |
EntryAssembly |
Pobiera zestaw wejścia dla aplikacji. |
HostExecutionContextManager |
Pobiera menedżera kontekstu wykonywania hosta, który zarządza przepływem kontekstu wykonywania. |
HostSecurityManager |
Pobiera menedżera zabezpieczeń hosta, który uczestniczy w decyzjach dotyczących zabezpieczeń domeny aplikacji. |
InitializationFlags |
Pobiera flagi inicjowania dla niestandardowych menedżerów domen aplikacji. |
Metody
CheckSecuritySettings(SecurityState) |
Wskazuje, czy określona operacja jest dozwolona w domenie aplikacji. |
CreateDomain(String, Evidence, AppDomainSetup) |
Zwraca nową lub istniejącą domenę aplikacji. |
CreateDomainHelper(String, Evidence, AppDomainSetup) |
Udostępnia metodę pomocnika do utworzenia domeny aplikacji. |
CreateObjRef(Type) |
Tworzy obiekt zawierający wszystkie istotne informacje wymagane do wygenerowania serwera proxy używanego do komunikowania się z obiektem zdalnym. (Odziedziczone po MarshalByRefObject) |
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetLifetimeService() |
Przestarzałe.
Pobiera bieżący obiekt usługi okresu istnienia, który kontroluje zasady okresu istnienia dla tego wystąpienia. (Odziedziczone po MarshalByRefObject) |
GetType() |
Type Pobiera bieżące wystąpienie. (Odziedziczone po Object) |
InitializeLifetimeService() |
Przestarzałe.
Uzyskuje obiekt usługi okresu istnienia, aby kontrolować zasady okresu istnienia dla tego wystąpienia. (Odziedziczone po MarshalByRefObject) |
InitializeNewDomain(AppDomainSetup) |
Inicjuje nową domenę aplikacji. |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
MemberwiseClone(Boolean) |
Tworzy płytkią kopię bieżącego MarshalByRefObject obiektu. (Odziedziczone po MarshalByRefObject) |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |