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 pokazano 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.
AppDomainManager Zaimplementowanie 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 APPDOMAIN_MANAGER_ASM i APPDOMAIN_MANAGER_TYPE zmiennych środowiskowych lub użyj <elementów appDomainManagerAssembly> i <appDomainManagerType> w pliku konfiguracji. Zestaw musi być w pełni zaufany i znajdować się 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. 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 elementu zależy od zestawów oznaczonych atrybutem warunkowym AllowPartiallyTrustedCallersAttribute (APTCA), należy uwzględnić te zestawy na liście, które są przekazywane do PartialTrustVisibleAssemblies właściwości używanej AppDomainSetup do 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 uruchomieniem innego 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 jako fullTrustAssemblies
w AppDomain.CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[]) metodzie, można załadować w konstruktorze AppDomainManager i metodzie InitializeNewDomain .
Uwaga
Ta klasa zawiera żądanie łącza i żądanie dziedziczenia na poziomie klasy. Obiekt SecurityException jest zgłaszany, gdy obiekt wywołujący natychmiast lub klasa pochodna nie ma uprawnień do infrastruktury. Aby uzyskać szczegółowe informacje na temat wymagań dotyczących zabezpieczeń, zobacz Link Demands and Inheritance Demands (Wymagania dotyczące linków 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ściowy 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 domeny 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 służącą do tworzenia 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 wartość bieżącego wystąpienia. (Odziedziczone po Object) |
InitializeLifetimeService() |
Przestarzałe.
Uzyskuje obiekt usługi okresu istnienia w celu kontrolowania zasad 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) |
Dotyczy
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla