AppDomainManager Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Poskytuje spravovaný ekvivalent nespravovaného hostitele.
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
- Dědičnost
- Atributy
Příklady
Následující příklad ukazuje velmi jednoduchou implementaci .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
Poznámky
Důležité
Ke konfiguraci domény aplikace v ASP.NET nepoužívejte AppDomainManager . V ASP.NET musí konfiguraci zpracovávat hostitel.
AppDomainManager Implementace třídy umožňuje hostitelské aplikaci podílet se na vytváření nových domén aplikace. Chcete-li nahradit výchozí AppDomainManager, identifikujte sestavení a typ nahrazení AppDomainManager v APPDOMAIN_MANAGER_ASM a APPDOMAIN_MANAGER_TYPE proměnných prostředí nebo použijte <v konfiguračním souboru elementy appDomainManagerAssembly> a <appDomainManagerType> . Sestavení musí být plně důvěryhodné a musí být obsaženo v globální mezipaměti sestavení (GPA) nebo adresáři spouštěcí aplikace. Názvy typu a sestavení musí být plně kvalifikované v proměnných prostředí. Příklad:
set APPDOMAIN_MANAGER_TYPE=MyNamespace.TestAppDomainManager
set APPDOMAIN_MANAGER_ASM=customappDomainmanager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f1368f7b12a08d72
Důležité
Pokud sestavení obsahující vaši podtřídu AppDomainManager závisí na sestaveních, která jsou označena podmíněným AllowPartiallyTrustedCallersAttribute atributem (APTCA), musíte tato sestavení zahrnout do PartialTrustVisibleAssemblies seznamu, který předáte vlastnosti AppDomainSetup používané k vytvoření domén aplikace. V opačném případě budou sestavení označená podmíněným atributem APTCA zakázána.
Je AppDomainManager spravovaný ekvivalent nespravovaného hostitele. Objekt AppDomainManager se podílí na vytváření nových domén aplikace v procesu a může přizpůsobit nové AppDomain před spuštěním jiného spravovaného kódu. Může AppDomainManager také poskytnout správcům hostitelů, kteří se podílejí na dalších aspektech provádění modulu CLR (Common Language Runtime). Může například identifikovat HostSecurityManager objekt, AppDomainManager který se podílí na bezpečnostních rozhodnutích domény aplikace.
Poznámka
V konstruktoru a InitializeNewDomain metodě lze načíst AppDomainManager pouze sestavení , FullTrust
jako jsou například sestavení v globální mezipaměti sestavení (GPA) nebo identifikovaná jako fullTrustAssemblies
v AppDomain.CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[]) metodě .
Poznámka
Tato třída obsahuje požadavek na propojení a požadavek dědičnosti na úrovni třídy. Vyvolá SecurityException se, když přímý volající nebo odvozená třída nemá oprávnění k infrastruktuře. Podrobnosti o požadavcích na zabezpečení najdete v tématu Propojení požadavků a Požadavků dědičnosti.
Konstruktory
AppDomainManager() |
Inicializuje novou instanci AppDomainManager třídy . |
Vlastnosti
ApplicationActivator |
Získá aktivátor aplikace, který zpracovává aktivaci doplňků a aplikací založených na manifestu pro doménu. |
EntryAssembly |
Získá sestavení položky pro aplikaci. |
HostExecutionContextManager |
Získá správce kontextu spuštění hostitele, který spravuje tok kontextu spuštění. |
HostSecurityManager |
Získá správce zabezpečení hostitele, který se účastní rozhodnutí o zabezpečení pro doménu aplikace. |
InitializationFlags |
Získá inicializační příznaky pro vlastní správce domény aplikace. |
Metody
CheckSecuritySettings(SecurityState) |
Určuje, jestli je zadaná operace povolená v doméně aplikace. |
CreateDomain(String, Evidence, AppDomainSetup) |
Vrátí novou nebo existující doménu aplikace. |
CreateDomainHelper(String, Evidence, AppDomainSetup) |
Poskytuje pomocnou metodu pro vytvoření domény aplikace. |
CreateObjRef(Type) |
Vytvoří objekt, který obsahuje všechny relevantní informace potřebné k vygenerování proxy sloužící ke komunikaci se vzdáleným objektem. (Zděděno od MarshalByRefObject) |
Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
GetHashCode() |
Slouží jako výchozí hashovací funkce. (Zděděno od Object) |
GetLifetimeService() |
Zastaralé.
Načte aktuální životnost objektu služby, který řídí zásady životnosti pro tuto instanci. (Zděděno od MarshalByRefObject) |
GetType() |
Type Získá z aktuální instance. (Zděděno od Object) |
InitializeLifetimeService() |
Zastaralé.
Získá životnost objektu služby, který řídí zásady životnosti pro tuto instanci. (Zděděno od MarshalByRefObject) |
InitializeNewDomain(AppDomainSetup) |
Inicializuje novou doménu aplikace. |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (Zděděno od Object) |
MemberwiseClone(Boolean) |
Vytvoří mělkou kopii aktuálního MarshalByRefObject objektu. (Zděděno od MarshalByRefObject) |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |