Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / Runtime / Remoting / RemotingConfiguration.cs / 1305376 / RemotingConfiguration.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** File: RemotingConfiguration.cs ** ** Purpose: Classes for interfacing with remoting configuration ** settings ** ** ===========================================================*/ using System; using System.Security; using System.Security.Permissions; using System.Runtime.Remoting.Activation; using System.Runtime.Remoting.Contexts; using System.Runtime.CompilerServices; using StackCrawlMark = System.Threading.StackCrawlMark; using System.Runtime.Versioning; using System.Diagnostics.Contracts; namespace System.Runtime.Remoting { // Configuration - provides static methods interfacing with // configuration settings. [System.Runtime.InteropServices.ComVisible(true)] public static class RemotingConfiguration { private static bool s_ListeningForActivationRequests = false; [System.Security.SecuritySafeCritical] // auto-generated [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.RemotingConfiguration)] [ResourceExposure(ResourceScope.Machine)] [ResourceConsumption(ResourceScope.Machine)] [Obsolete("Use System.Runtime.Remoting.RemotingConfiguration.Configure(string fileName, bool ensureSecurity) instead.", false)] public static void Configure(String filename) { Configure(filename, false/*ensureSecurity*/); } [System.Security.SecuritySafeCritical] // auto-generated [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.RemotingConfiguration)] [ResourceExposure(ResourceScope.Machine)] [ResourceConsumption(ResourceScope.Machine)] public static void Configure(String filename, bool ensureSecurity) { RemotingConfigHandler.DoConfiguration(filename, ensureSecurity); // Set a flag in the VM to mark that remoting is configured // This will enable us to decide if activation for MBR // objects should go through the managed codepath RemotingServices.InternalSetRemoteActivationConfigured(); } // Configure public static String ApplicationName { get { if (!RemotingConfigHandler.HasApplicationNameBeenSet()) return null; else return RemotingConfigHandler.ApplicationName; } [System.Security.SecuritySafeCritical] // auto-generated [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.RemotingConfiguration)] set { RemotingConfigHandler.ApplicationName = value; } } // ApplicationName // The application id is prepended to object uri's. public static String ApplicationId { [System.Security.SecurityCritical] // auto-generated_required get { return Identity.AppDomainUniqueId; } } // ApplicationId public static String ProcessId { [System.Security.SecurityCritical] // auto-generated_required get { return Identity.ProcessGuid;} } public static CustomErrorsModes CustomErrorsMode { get { return RemotingConfigHandler.CustomErrorsMode; } [System.Security.SecuritySafeCritical] // auto-generated [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.RemotingConfiguration)] set { RemotingConfigHandler.CustomErrorsMode = value; } } public static bool CustomErrorsEnabled(bool isLocalRequest) { switch (CustomErrorsMode) { case CustomErrorsModes.Off: return false; case CustomErrorsModes.On: return true; case CustomErrorsModes.RemoteOnly: return(!isLocalRequest); default: return true; } } [System.Security.SecuritySafeCritical] // auto-generated [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.RemotingConfiguration)] public static void RegisterActivatedServiceType(Type type) { ActivatedServiceTypeEntry entry = new ActivatedServiceTypeEntry(type); RemotingConfiguration.RegisterActivatedServiceType(entry); } // RegisterActivatedServiceType [System.Security.SecuritySafeCritical] // auto-generated [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.RemotingConfiguration)] public static void RegisterActivatedServiceType(ActivatedServiceTypeEntry entry) { RemotingConfigHandler.RegisterActivatedServiceType(entry); // make sure we're listening for activation requests // (all registrations for activated service types will come through here) if (!s_ListeningForActivationRequests) { s_ListeningForActivationRequests = true; ActivationServices.StartListeningForRemoteRequests(); } } // RegisterActivatedServiceType [System.Security.SecuritySafeCritical] // auto-generated [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.RemotingConfiguration)] public static void RegisterWellKnownServiceType( Type type, String objectUri, WellKnownObjectMode mode) { WellKnownServiceTypeEntry wke = new WellKnownServiceTypeEntry(type, objectUri, mode); RemotingConfiguration.RegisterWellKnownServiceType(wke); } // RegisterWellKnownServiceType [System.Security.SecuritySafeCritical] // auto-generated [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.RemotingConfiguration)] public static void RegisterWellKnownServiceType(WellKnownServiceTypeEntry entry) { RemotingConfigHandler.RegisterWellKnownServiceType(entry); } // RegisterWellKnownServiceType [System.Security.SecuritySafeCritical] // auto-generated [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.RemotingConfiguration)] public static void RegisterActivatedClientType(Type type, String appUrl) { ActivatedClientTypeEntry acte = new ActivatedClientTypeEntry(type, appUrl); RemotingConfiguration.RegisterActivatedClientType(acte); } // RegisterActivatedClientType [System.Security.SecuritySafeCritical] // auto-generated [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.RemotingConfiguration)] public static void RegisterActivatedClientType(ActivatedClientTypeEntry entry) { RemotingConfigHandler.RegisterActivatedClientType(entry); // all registrations for activated client types will come through here RemotingServices.InternalSetRemoteActivationConfigured(); } // RegisterActivatedClientType [System.Security.SecuritySafeCritical] // auto-generated [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.RemotingConfiguration)] public static void RegisterWellKnownClientType(Type type, String objectUrl) { WellKnownClientTypeEntry wke = new WellKnownClientTypeEntry(type, objectUrl); RemotingConfiguration.RegisterWellKnownClientType(wke); } // RegisterWellKnownClientType [System.Security.SecuritySafeCritical] // auto-generated [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.RemotingConfiguration)] public static void RegisterWellKnownClientType(WellKnownClientTypeEntry entry) { RemotingConfigHandler.RegisterWellKnownClientType(entry); // all registrations for wellknown client types will come through here RemotingServices.InternalSetRemoteActivationConfigured(); } // RegisterWellKnownClientType [System.Security.SecuritySafeCritical] // auto-generated [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.RemotingConfiguration)] public static ActivatedServiceTypeEntry[] GetRegisteredActivatedServiceTypes() { return RemotingConfigHandler.GetRegisteredActivatedServiceTypes(); } [System.Security.SecuritySafeCritical] // auto-generated [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.RemotingConfiguration)] public static WellKnownServiceTypeEntry[] GetRegisteredWellKnownServiceTypes() { return RemotingConfigHandler.GetRegisteredWellKnownServiceTypes(); } [System.Security.SecuritySafeCritical] // auto-generated [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.RemotingConfiguration)] public static ActivatedClientTypeEntry[] GetRegisteredActivatedClientTypes() { return RemotingConfigHandler.GetRegisteredActivatedClientTypes(); } [System.Security.SecuritySafeCritical] // auto-generated [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.RemotingConfiguration)] public static WellKnownClientTypeEntry[] GetRegisteredWellKnownClientTypes() { return RemotingConfigHandler.GetRegisteredWellKnownClientTypes(); } // This is used at the client end to check if an activation needs // to go remote. [System.Security.SecuritySafeCritical] // auto-generated [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.RemotingConfiguration)] public static ActivatedClientTypeEntry IsRemotelyActivatedClientType(Type svrType) { if (svrType == null) throw new ArgumentNullException("svrType"); RuntimeType rt = svrType as RuntimeType; if (rt == null) throw new ArgumentException(Environment.GetResourceString("Argument_MustBeRuntimeType")); return RemotingConfigHandler.IsRemotelyActivatedClientType(rt); } // This is used at the client end to check if an activation needs // to go remote. [System.Security.SecuritySafeCritical] // auto-generated [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.RemotingConfiguration)] public static ActivatedClientTypeEntry IsRemotelyActivatedClientType(String typeName, String assemblyName) { return RemotingConfigHandler.IsRemotelyActivatedClientType(typeName, assemblyName); } // This is used at the client end to check if a "new Foo" needs to // happen via a Connect() under the covers. [System.Security.SecuritySafeCritical] // auto-generated [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.RemotingConfiguration)] public static WellKnownClientTypeEntry IsWellKnownClientType(Type svrType) { if (svrType == null) throw new ArgumentNullException("svrType"); RuntimeType rt = svrType as RuntimeType; if (rt == null) throw new ArgumentException(Environment.GetResourceString("Argument_MustBeRuntimeType")); return RemotingConfigHandler.IsWellKnownClientType(rt); } // This is used at the client end to check if a "new Foo" needs to // happen via a Connect() under the covers. [System.Security.SecuritySafeCritical] // auto-generated [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.RemotingConfiguration)] public static WellKnownClientTypeEntry IsWellKnownClientType(String typeName, String assemblyName) { return RemotingConfigHandler.IsWellKnownClientType(typeName, assemblyName); } // This is used at the server end to check if a type being activated // is explicitly allowed by the server. [System.Security.SecuritySafeCritical] // auto-generated [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.RemotingConfiguration)] public static bool IsActivationAllowed(Type svrType) { RuntimeType rt = svrType as RuntimeType; if (svrType != null && rt == null) throw new ArgumentException(Environment.GetResourceString("Argument_MustBeRuntimeType")); return RemotingConfigHandler.IsActivationAllowed(rt); } } // class Configuration // // The following classes are used to register and retrieve remoted type information // // Base class for all configuration entries [System.Runtime.InteropServices.ComVisible(true)] public class TypeEntry { String _typeName; String _assemblyName; RemoteAppEntry _cachedRemoteAppEntry = null; protected TypeEntry() { // Forbid creation of this class by outside users... } public String TypeName { get { return _typeName; } set {_typeName = value;} } public String AssemblyName { get { return _assemblyName; } set {_assemblyName = value;} } internal void CacheRemoteAppEntry(RemoteAppEntry entry) {_cachedRemoteAppEntry = entry;} internal RemoteAppEntry GetRemoteAppEntry() { return _cachedRemoteAppEntry;} } [System.Runtime.InteropServices.ComVisible(true)] public class ActivatedClientTypeEntry : TypeEntry { String _appUrl; // url of application to activate the type in // optional data IContextAttribute[] _contextAttributes = null; public ActivatedClientTypeEntry(String typeName, String assemblyName, String appUrl) { if (typeName == null) throw new ArgumentNullException("typeName"); if (assemblyName == null) throw new ArgumentNullException("assemblyName"); if (appUrl == null) throw new ArgumentNullException("appUrl"); Contract.EndContractBlock(); TypeName = typeName; AssemblyName = assemblyName; _appUrl = appUrl; } // ActivatedClientTypeEntry [System.Security.SecuritySafeCritical] // auto-generated public ActivatedClientTypeEntry(Type type, String appUrl) { if (type == null) throw new ArgumentNullException("type"); if (appUrl == null) throw new ArgumentNullException("appUrl"); Contract.EndContractBlock(); RuntimeType rtType = type as RuntimeType; if (rtType == null) throw new ArgumentException(Environment.GetResourceString("Argument_MustBeRuntimeAssembly")); TypeName = type.FullName; AssemblyName = rtType.GetRuntimeAssembly().GetSimpleName(); _appUrl = appUrl; } // ActivatedClientTypeEntry public String ApplicationUrl { get { return _appUrl; } } public Type ObjectType { [MethodImplAttribute(MethodImplOptions.NoInlining)] // Methods containing StackCrawlMark local var has to be marked non-inlineable get { StackCrawlMark stackMark = StackCrawlMark.LookForMyCaller; return RuntimeTypeHandle.GetTypeByName(TypeName + ", " + AssemblyName, ref stackMark); } } public IContextAttribute[] ContextAttributes { get { return _contextAttributes; } set { _contextAttributes = value; } } public override String ToString() { return "type='" + TypeName + ", " + AssemblyName + "'; appUrl=" + _appUrl; } } // class ActivatedClientTypeEntry [System.Runtime.InteropServices.ComVisible(true)] public class ActivatedServiceTypeEntry : TypeEntry { // optional data IContextAttribute[] _contextAttributes = null; public ActivatedServiceTypeEntry(String typeName, String assemblyName) { if (typeName == null) throw new ArgumentNullException("typeName"); if (assemblyName == null) throw new ArgumentNullException("assemblyName"); Contract.EndContractBlock(); TypeName = typeName; AssemblyName = assemblyName; } [System.Security.SecuritySafeCritical] // auto-generated public ActivatedServiceTypeEntry(Type type) { if (type == null) throw new ArgumentNullException("type"); Contract.EndContractBlock(); RuntimeType rtType = type as RuntimeType; if (rtType == null) throw new ArgumentException(Environment.GetResourceString("Argument_MustBeRuntimeAssembly")); TypeName = type.FullName; AssemblyName = rtType.GetRuntimeAssembly().GetSimpleName(); } public Type ObjectType { [MethodImplAttribute(MethodImplOptions.NoInlining)] // Methods containing StackCrawlMark local var has to be marked non-inlineable get { StackCrawlMark stackMark = StackCrawlMark.LookForMyCaller; return RuntimeTypeHandle.GetTypeByName(TypeName + ", " + AssemblyName, ref stackMark); } } public IContextAttribute[] ContextAttributes { get { return _contextAttributes; } set { _contextAttributes = value; } } public override String ToString() { return "type='" + TypeName + ", " + AssemblyName + "'"; } } // class ActivatedServiceTypeEntry [System.Runtime.InteropServices.ComVisible(true)] public class WellKnownClientTypeEntry : TypeEntry { String _objectUrl; // optional data String _appUrl = null; // url of application to associate this object with public WellKnownClientTypeEntry(String typeName, String assemblyName, String objectUrl) { if (typeName == null) throw new ArgumentNullException("typeName"); if (assemblyName == null) throw new ArgumentNullException("assemblyName"); if (objectUrl == null) throw new ArgumentNullException("objectUrl"); Contract.EndContractBlock(); TypeName = typeName; AssemblyName = assemblyName; _objectUrl = objectUrl; } [System.Security.SecuritySafeCritical] // auto-generated public WellKnownClientTypeEntry(Type type, String objectUrl) { if (type == null) throw new ArgumentNullException("type"); if (objectUrl == null) throw new ArgumentNullException("objectUrl"); Contract.EndContractBlock(); RuntimeType rtType = type as RuntimeType; if (rtType == null) throw new ArgumentException(Environment.GetResourceString("Argument_MustBeRuntimeType")); TypeName = type.FullName; AssemblyName = rtType.GetRuntimeAssembly().GetSimpleName(); _objectUrl = objectUrl; } public String ObjectUrl { get { return _objectUrl; } } public Type ObjectType { [MethodImplAttribute(MethodImplOptions.NoInlining)] // Methods containing StackCrawlMark local var has to be marked non-inlineable get { StackCrawlMark stackMark = StackCrawlMark.LookForMyCaller; return RuntimeTypeHandle.GetTypeByName(TypeName + ", " + AssemblyName, ref stackMark); } } public String ApplicationUrl { get { return _appUrl; } set { _appUrl = value; } } public override String ToString() { String str = "type='" + TypeName + ", " + AssemblyName + "'; url=" + _objectUrl; if (_appUrl != null) str += "; appUrl=" + _appUrl; return str; } } // class WellKnownClientTypeEntry [System.Runtime.InteropServices.ComVisible(true)] public class WellKnownServiceTypeEntry : TypeEntry { String _objectUri; WellKnownObjectMode _mode; // optional data IContextAttribute[] _contextAttributes = null; public WellKnownServiceTypeEntry(String typeName, String assemblyName, String objectUri, WellKnownObjectMode mode) { if (typeName == null) throw new ArgumentNullException("typeName"); if (assemblyName == null) throw new ArgumentNullException("assemblyName"); if (objectUri == null) throw new ArgumentNullException("objectUri"); Contract.EndContractBlock(); TypeName = typeName; AssemblyName = assemblyName; _objectUri = objectUri; _mode = mode; } public WellKnownServiceTypeEntry(Type type, String objectUri, WellKnownObjectMode mode) { if (type == null) throw new ArgumentNullException("type"); if (objectUri == null) throw new ArgumentNullException("objectUri"); Contract.EndContractBlock(); if (!(type is RuntimeType)) throw new ArgumentException(Environment.GetResourceString("Argument_MustBeRuntimeType")); TypeName = type.FullName; AssemblyName = type.Module.Assembly.FullName; _objectUri = objectUri; _mode = mode; } public String ObjectUri { get { return _objectUri; } } public WellKnownObjectMode Mode { get { return _mode; } } public Type ObjectType { [MethodImplAttribute(MethodImplOptions.NoInlining)] // Methods containing StackCrawlMark local var has to be marked non-inlineable get { StackCrawlMark stackMark = StackCrawlMark.LookForMyCaller; return RuntimeTypeHandle.GetTypeByName(TypeName + ", " + AssemblyName, ref stackMark); } } public IContextAttribute[] ContextAttributes { get { return _contextAttributes; } set { _contextAttributes = value; } } public override String ToString() { return "type='" + TypeName + ", " + AssemblyName + "'; objectUri=" + _objectUri + "; mode=" + _mode.ToString(); } } // class WellKnownServiceTypeEntry internal class RemoteAppEntry { String _remoteAppName; String _remoteAppURI; internal RemoteAppEntry(String appName, String appURI) { Contract.Assert(appURI != null, "Bad remote app URI"); _remoteAppName = appName; _remoteAppURI = appURI; } internal String GetAppURI() { return _remoteAppURI;} } // class RemoteAppEntry [System.Runtime.InteropServices.ComVisible(true)] public enum CustomErrorsModes { On, Off, RemoteOnly } } // namespace System.Runtime.Remoting // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** File: RemotingConfiguration.cs ** ** Purpose: Classes for interfacing with remoting configuration ** settings ** ** ===========================================================*/ using System; using System.Security; using System.Security.Permissions; using System.Runtime.Remoting.Activation; using System.Runtime.Remoting.Contexts; using System.Runtime.CompilerServices; using StackCrawlMark = System.Threading.StackCrawlMark; using System.Runtime.Versioning; using System.Diagnostics.Contracts; namespace System.Runtime.Remoting { // Configuration - provides static methods interfacing with // configuration settings. [System.Runtime.InteropServices.ComVisible(true)] public static class RemotingConfiguration { private static bool s_ListeningForActivationRequests = false; [System.Security.SecuritySafeCritical] // auto-generated [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.RemotingConfiguration)] [ResourceExposure(ResourceScope.Machine)] [ResourceConsumption(ResourceScope.Machine)] [Obsolete("Use System.Runtime.Remoting.RemotingConfiguration.Configure(string fileName, bool ensureSecurity) instead.", false)] public static void Configure(String filename) { Configure(filename, false/*ensureSecurity*/); } [System.Security.SecuritySafeCritical] // auto-generated [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.RemotingConfiguration)] [ResourceExposure(ResourceScope.Machine)] [ResourceConsumption(ResourceScope.Machine)] public static void Configure(String filename, bool ensureSecurity) { RemotingConfigHandler.DoConfiguration(filename, ensureSecurity); // Set a flag in the VM to mark that remoting is configured // This will enable us to decide if activation for MBR // objects should go through the managed codepath RemotingServices.InternalSetRemoteActivationConfigured(); } // Configure public static String ApplicationName { get { if (!RemotingConfigHandler.HasApplicationNameBeenSet()) return null; else return RemotingConfigHandler.ApplicationName; } [System.Security.SecuritySafeCritical] // auto-generated [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.RemotingConfiguration)] set { RemotingConfigHandler.ApplicationName = value; } } // ApplicationName // The application id is prepended to object uri's. public static String ApplicationId { [System.Security.SecurityCritical] // auto-generated_required get { return Identity.AppDomainUniqueId; } } // ApplicationId public static String ProcessId { [System.Security.SecurityCritical] // auto-generated_required get { return Identity.ProcessGuid;} } public static CustomErrorsModes CustomErrorsMode { get { return RemotingConfigHandler.CustomErrorsMode; } [System.Security.SecuritySafeCritical] // auto-generated [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.RemotingConfiguration)] set { RemotingConfigHandler.CustomErrorsMode = value; } } public static bool CustomErrorsEnabled(bool isLocalRequest) { switch (CustomErrorsMode) { case CustomErrorsModes.Off: return false; case CustomErrorsModes.On: return true; case CustomErrorsModes.RemoteOnly: return(!isLocalRequest); default: return true; } } [System.Security.SecuritySafeCritical] // auto-generated [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.RemotingConfiguration)] public static void RegisterActivatedServiceType(Type type) { ActivatedServiceTypeEntry entry = new ActivatedServiceTypeEntry(type); RemotingConfiguration.RegisterActivatedServiceType(entry); } // RegisterActivatedServiceType [System.Security.SecuritySafeCritical] // auto-generated [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.RemotingConfiguration)] public static void RegisterActivatedServiceType(ActivatedServiceTypeEntry entry) { RemotingConfigHandler.RegisterActivatedServiceType(entry); // make sure we're listening for activation requests // (all registrations for activated service types will come through here) if (!s_ListeningForActivationRequests) { s_ListeningForActivationRequests = true; ActivationServices.StartListeningForRemoteRequests(); } } // RegisterActivatedServiceType [System.Security.SecuritySafeCritical] // auto-generated [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.RemotingConfiguration)] public static void RegisterWellKnownServiceType( Type type, String objectUri, WellKnownObjectMode mode) { WellKnownServiceTypeEntry wke = new WellKnownServiceTypeEntry(type, objectUri, mode); RemotingConfiguration.RegisterWellKnownServiceType(wke); } // RegisterWellKnownServiceType [System.Security.SecuritySafeCritical] // auto-generated [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.RemotingConfiguration)] public static void RegisterWellKnownServiceType(WellKnownServiceTypeEntry entry) { RemotingConfigHandler.RegisterWellKnownServiceType(entry); } // RegisterWellKnownServiceType [System.Security.SecuritySafeCritical] // auto-generated [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.RemotingConfiguration)] public static void RegisterActivatedClientType(Type type, String appUrl) { ActivatedClientTypeEntry acte = new ActivatedClientTypeEntry(type, appUrl); RemotingConfiguration.RegisterActivatedClientType(acte); } // RegisterActivatedClientType [System.Security.SecuritySafeCritical] // auto-generated [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.RemotingConfiguration)] public static void RegisterActivatedClientType(ActivatedClientTypeEntry entry) { RemotingConfigHandler.RegisterActivatedClientType(entry); // all registrations for activated client types will come through here RemotingServices.InternalSetRemoteActivationConfigured(); } // RegisterActivatedClientType [System.Security.SecuritySafeCritical] // auto-generated [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.RemotingConfiguration)] public static void RegisterWellKnownClientType(Type type, String objectUrl) { WellKnownClientTypeEntry wke = new WellKnownClientTypeEntry(type, objectUrl); RemotingConfiguration.RegisterWellKnownClientType(wke); } // RegisterWellKnownClientType [System.Security.SecuritySafeCritical] // auto-generated [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.RemotingConfiguration)] public static void RegisterWellKnownClientType(WellKnownClientTypeEntry entry) { RemotingConfigHandler.RegisterWellKnownClientType(entry); // all registrations for wellknown client types will come through here RemotingServices.InternalSetRemoteActivationConfigured(); } // RegisterWellKnownClientType [System.Security.SecuritySafeCritical] // auto-generated [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.RemotingConfiguration)] public static ActivatedServiceTypeEntry[] GetRegisteredActivatedServiceTypes() { return RemotingConfigHandler.GetRegisteredActivatedServiceTypes(); } [System.Security.SecuritySafeCritical] // auto-generated [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.RemotingConfiguration)] public static WellKnownServiceTypeEntry[] GetRegisteredWellKnownServiceTypes() { return RemotingConfigHandler.GetRegisteredWellKnownServiceTypes(); } [System.Security.SecuritySafeCritical] // auto-generated [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.RemotingConfiguration)] public static ActivatedClientTypeEntry[] GetRegisteredActivatedClientTypes() { return RemotingConfigHandler.GetRegisteredActivatedClientTypes(); } [System.Security.SecuritySafeCritical] // auto-generated [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.RemotingConfiguration)] public static WellKnownClientTypeEntry[] GetRegisteredWellKnownClientTypes() { return RemotingConfigHandler.GetRegisteredWellKnownClientTypes(); } // This is used at the client end to check if an activation needs // to go remote. [System.Security.SecuritySafeCritical] // auto-generated [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.RemotingConfiguration)] public static ActivatedClientTypeEntry IsRemotelyActivatedClientType(Type svrType) { if (svrType == null) throw new ArgumentNullException("svrType"); RuntimeType rt = svrType as RuntimeType; if (rt == null) throw new ArgumentException(Environment.GetResourceString("Argument_MustBeRuntimeType")); return RemotingConfigHandler.IsRemotelyActivatedClientType(rt); } // This is used at the client end to check if an activation needs // to go remote. [System.Security.SecuritySafeCritical] // auto-generated [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.RemotingConfiguration)] public static ActivatedClientTypeEntry IsRemotelyActivatedClientType(String typeName, String assemblyName) { return RemotingConfigHandler.IsRemotelyActivatedClientType(typeName, assemblyName); } // This is used at the client end to check if a "new Foo" needs to // happen via a Connect() under the covers. [System.Security.SecuritySafeCritical] // auto-generated [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.RemotingConfiguration)] public static WellKnownClientTypeEntry IsWellKnownClientType(Type svrType) { if (svrType == null) throw new ArgumentNullException("svrType"); RuntimeType rt = svrType as RuntimeType; if (rt == null) throw new ArgumentException(Environment.GetResourceString("Argument_MustBeRuntimeType")); return RemotingConfigHandler.IsWellKnownClientType(rt); } // This is used at the client end to check if a "new Foo" needs to // happen via a Connect() under the covers. [System.Security.SecuritySafeCritical] // auto-generated [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.RemotingConfiguration)] public static WellKnownClientTypeEntry IsWellKnownClientType(String typeName, String assemblyName) { return RemotingConfigHandler.IsWellKnownClientType(typeName, assemblyName); } // This is used at the server end to check if a type being activated // is explicitly allowed by the server. [System.Security.SecuritySafeCritical] // auto-generated [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.RemotingConfiguration)] public static bool IsActivationAllowed(Type svrType) { RuntimeType rt = svrType as RuntimeType; if (svrType != null && rt == null) throw new ArgumentException(Environment.GetResourceString("Argument_MustBeRuntimeType")); return RemotingConfigHandler.IsActivationAllowed(rt); } } // class Configuration // // The following classes are used to register and retrieve remoted type information // // Base class for all configuration entries [System.Runtime.InteropServices.ComVisible(true)] public class TypeEntry { String _typeName; String _assemblyName; RemoteAppEntry _cachedRemoteAppEntry = null; protected TypeEntry() { // Forbid creation of this class by outside users... } public String TypeName { get { return _typeName; } set {_typeName = value;} } public String AssemblyName { get { return _assemblyName; } set {_assemblyName = value;} } internal void CacheRemoteAppEntry(RemoteAppEntry entry) {_cachedRemoteAppEntry = entry;} internal RemoteAppEntry GetRemoteAppEntry() { return _cachedRemoteAppEntry;} } [System.Runtime.InteropServices.ComVisible(true)] public class ActivatedClientTypeEntry : TypeEntry { String _appUrl; // url of application to activate the type in // optional data IContextAttribute[] _contextAttributes = null; public ActivatedClientTypeEntry(String typeName, String assemblyName, String appUrl) { if (typeName == null) throw new ArgumentNullException("typeName"); if (assemblyName == null) throw new ArgumentNullException("assemblyName"); if (appUrl == null) throw new ArgumentNullException("appUrl"); Contract.EndContractBlock(); TypeName = typeName; AssemblyName = assemblyName; _appUrl = appUrl; } // ActivatedClientTypeEntry [System.Security.SecuritySafeCritical] // auto-generated public ActivatedClientTypeEntry(Type type, String appUrl) { if (type == null) throw new ArgumentNullException("type"); if (appUrl == null) throw new ArgumentNullException("appUrl"); Contract.EndContractBlock(); RuntimeType rtType = type as RuntimeType; if (rtType == null) throw new ArgumentException(Environment.GetResourceString("Argument_MustBeRuntimeAssembly")); TypeName = type.FullName; AssemblyName = rtType.GetRuntimeAssembly().GetSimpleName(); _appUrl = appUrl; } // ActivatedClientTypeEntry public String ApplicationUrl { get { return _appUrl; } } public Type ObjectType { [MethodImplAttribute(MethodImplOptions.NoInlining)] // Methods containing StackCrawlMark local var has to be marked non-inlineable get { StackCrawlMark stackMark = StackCrawlMark.LookForMyCaller; return RuntimeTypeHandle.GetTypeByName(TypeName + ", " + AssemblyName, ref stackMark); } } public IContextAttribute[] ContextAttributes { get { return _contextAttributes; } set { _contextAttributes = value; } } public override String ToString() { return "type='" + TypeName + ", " + AssemblyName + "'; appUrl=" + _appUrl; } } // class ActivatedClientTypeEntry [System.Runtime.InteropServices.ComVisible(true)] public class ActivatedServiceTypeEntry : TypeEntry { // optional data IContextAttribute[] _contextAttributes = null; public ActivatedServiceTypeEntry(String typeName, String assemblyName) { if (typeName == null) throw new ArgumentNullException("typeName"); if (assemblyName == null) throw new ArgumentNullException("assemblyName"); Contract.EndContractBlock(); TypeName = typeName; AssemblyName = assemblyName; } [System.Security.SecuritySafeCritical] // auto-generated public ActivatedServiceTypeEntry(Type type) { if (type == null) throw new ArgumentNullException("type"); Contract.EndContractBlock(); RuntimeType rtType = type as RuntimeType; if (rtType == null) throw new ArgumentException(Environment.GetResourceString("Argument_MustBeRuntimeAssembly")); TypeName = type.FullName; AssemblyName = rtType.GetRuntimeAssembly().GetSimpleName(); } public Type ObjectType { [MethodImplAttribute(MethodImplOptions.NoInlining)] // Methods containing StackCrawlMark local var has to be marked non-inlineable get { StackCrawlMark stackMark = StackCrawlMark.LookForMyCaller; return RuntimeTypeHandle.GetTypeByName(TypeName + ", " + AssemblyName, ref stackMark); } } public IContextAttribute[] ContextAttributes { get { return _contextAttributes; } set { _contextAttributes = value; } } public override String ToString() { return "type='" + TypeName + ", " + AssemblyName + "'"; } } // class ActivatedServiceTypeEntry [System.Runtime.InteropServices.ComVisible(true)] public class WellKnownClientTypeEntry : TypeEntry { String _objectUrl; // optional data String _appUrl = null; // url of application to associate this object with public WellKnownClientTypeEntry(String typeName, String assemblyName, String objectUrl) { if (typeName == null) throw new ArgumentNullException("typeName"); if (assemblyName == null) throw new ArgumentNullException("assemblyName"); if (objectUrl == null) throw new ArgumentNullException("objectUrl"); Contract.EndContractBlock(); TypeName = typeName; AssemblyName = assemblyName; _objectUrl = objectUrl; } [System.Security.SecuritySafeCritical] // auto-generated public WellKnownClientTypeEntry(Type type, String objectUrl) { if (type == null) throw new ArgumentNullException("type"); if (objectUrl == null) throw new ArgumentNullException("objectUrl"); Contract.EndContractBlock(); RuntimeType rtType = type as RuntimeType; if (rtType == null) throw new ArgumentException(Environment.GetResourceString("Argument_MustBeRuntimeType")); TypeName = type.FullName; AssemblyName = rtType.GetRuntimeAssembly().GetSimpleName(); _objectUrl = objectUrl; } public String ObjectUrl { get { return _objectUrl; } } public Type ObjectType { [MethodImplAttribute(MethodImplOptions.NoInlining)] // Methods containing StackCrawlMark local var has to be marked non-inlineable get { StackCrawlMark stackMark = StackCrawlMark.LookForMyCaller; return RuntimeTypeHandle.GetTypeByName(TypeName + ", " + AssemblyName, ref stackMark); } } public String ApplicationUrl { get { return _appUrl; } set { _appUrl = value; } } public override String ToString() { String str = "type='" + TypeName + ", " + AssemblyName + "'; url=" + _objectUrl; if (_appUrl != null) str += "; appUrl=" + _appUrl; return str; } } // class WellKnownClientTypeEntry [System.Runtime.InteropServices.ComVisible(true)] public class WellKnownServiceTypeEntry : TypeEntry { String _objectUri; WellKnownObjectMode _mode; // optional data IContextAttribute[] _contextAttributes = null; public WellKnownServiceTypeEntry(String typeName, String assemblyName, String objectUri, WellKnownObjectMode mode) { if (typeName == null) throw new ArgumentNullException("typeName"); if (assemblyName == null) throw new ArgumentNullException("assemblyName"); if (objectUri == null) throw new ArgumentNullException("objectUri"); Contract.EndContractBlock(); TypeName = typeName; AssemblyName = assemblyName; _objectUri = objectUri; _mode = mode; } public WellKnownServiceTypeEntry(Type type, String objectUri, WellKnownObjectMode mode) { if (type == null) throw new ArgumentNullException("type"); if (objectUri == null) throw new ArgumentNullException("objectUri"); Contract.EndContractBlock(); if (!(type is RuntimeType)) throw new ArgumentException(Environment.GetResourceString("Argument_MustBeRuntimeType")); TypeName = type.FullName; AssemblyName = type.Module.Assembly.FullName; _objectUri = objectUri; _mode = mode; } public String ObjectUri { get { return _objectUri; } } public WellKnownObjectMode Mode { get { return _mode; } } public Type ObjectType { [MethodImplAttribute(MethodImplOptions.NoInlining)] // Methods containing StackCrawlMark local var has to be marked non-inlineable get { StackCrawlMark stackMark = StackCrawlMark.LookForMyCaller; return RuntimeTypeHandle.GetTypeByName(TypeName + ", " + AssemblyName, ref stackMark); } } public IContextAttribute[] ContextAttributes { get { return _contextAttributes; } set { _contextAttributes = value; } } public override String ToString() { return "type='" + TypeName + ", " + AssemblyName + "'; objectUri=" + _objectUri + "; mode=" + _mode.ToString(); } } // class WellKnownServiceTypeEntry internal class RemoteAppEntry { String _remoteAppName; String _remoteAppURI; internal RemoteAppEntry(String appName, String appURI) { Contract.Assert(appURI != null, "Bad remote app URI"); _remoteAppName = appName; _remoteAppURI = appURI; } internal String GetAppURI() { return _remoteAppURI;} } // class RemoteAppEntry [System.Runtime.InteropServices.ComVisible(true)] public enum CustomErrorsModes { On, Off, RemoteOnly } } // namespace System.Runtime.Remoting // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- InlineCategoriesDocument.cs
- CoTaskMemHandle.cs
- sqlcontext.cs
- XPathScanner.cs
- SynchronizationHandlesCodeDomSerializer.cs
- EntityTypeEmitter.cs
- ProtocolsConfigurationEntry.cs
- TextAdaptor.cs
- PersonalizablePropertyEntry.cs
- FlowLayout.cs
- CngKeyCreationParameters.cs
- DatasetMethodGenerator.cs
- Link.cs
- EntityDataSourceContextCreatedEventArgs.cs
- HttpContext.cs
- ColorAnimationUsingKeyFrames.cs
- ConnectionString.cs
- LocalizableResourceBuilder.cs
- VerticalAlignConverter.cs
- WebSysDescriptionAttribute.cs
- SqlProcedureAttribute.cs
- SessionStateContainer.cs
- ClientSideQueueItem.cs
- DeobfuscatingStream.cs
- DataListCommandEventArgs.cs
- SymbolMethod.cs
- XmlSchemas.cs
- ExpressionPrefixAttribute.cs
- DatatypeImplementation.cs
- ToolStripDropDownClosingEventArgs.cs
- WrapperEqualityComparer.cs
- Int64AnimationUsingKeyFrames.cs
- SafeUserTokenHandle.cs
- TextEditorParagraphs.cs
- WebPartCollection.cs
- FixUp.cs
- HttpModuleAction.cs
- SubpageParaClient.cs
- WebResponse.cs
- PreviewPageInfo.cs
- DataGridCaption.cs
- FileNameEditor.cs
- DataSetSchema.cs
- SafeNativeMethods.cs
- ConvertEvent.cs
- RenderContext.cs
- ObjectView.cs
- TransformConverter.cs
- BindableAttribute.cs
- InkPresenterAutomationPeer.cs
- StatusBarAutomationPeer.cs
- SecurityTokenValidationException.cs
- ApplicationId.cs
- ObjectQuery_EntitySqlExtensions.cs
- CookieHandler.cs
- UrlPath.cs
- DataChangedEventManager.cs
- SchemaConstraints.cs
- BaseCodePageEncoding.cs
- CapabilitiesUse.cs
- RectAnimationClockResource.cs
- SpeakProgressEventArgs.cs
- SqlProviderServices.cs
- ExtendedProperty.cs
- ManipulationDelta.cs
- Point4DValueSerializer.cs
- OracleLob.cs
- LassoHelper.cs
- RC2.cs
- ToolboxItemCollection.cs
- SourceExpressionException.cs
- DataGridRow.cs
- DBParameter.cs
- GridViewCancelEditEventArgs.cs
- WS2007HttpBinding.cs
- AuthenticationModulesSection.cs
- OracleTimeSpan.cs
- EdmProperty.cs
- BitmapDownload.cs
- Int64Storage.cs
- ScriptResourceMapping.cs
- ToolStripItemImageRenderEventArgs.cs
- FileDialog.cs
- TableRow.cs
- DescendantBaseQuery.cs
- NewExpression.cs
- Opcode.cs
- XmlTextWriter.cs
- X509SecurityTokenParameters.cs
- remotingproxy.cs
- HostSecurityManager.cs
- KeyInstance.cs
- DescendentsWalkerBase.cs
- XmlToDatasetMap.cs
- Bezier.cs
- ZoneButton.cs
- InplaceBitmapMetadataWriter.cs
- SendingRequestEventArgs.cs
- CodeParameterDeclarationExpressionCollection.cs
- ExpressionBuilder.cs