Although using the default architecture and transport channels is straightforward and likely to satisfy most remoting needs, particular scenarios might call for more complete control over the remoting process. The topics in this section delve more deeply into the remoting process to explain the lower-level processes and how they can be replaced or extended.
Security is an important consideration when building business applications and developers must be able to add security features such as authorization or encryption to remote method calls to meet business requirements. To accommodate this need, channels can be customized to provide developers with control over the actual transport mechanism of messages to and from a remote object.
CAUTION .NET remoting does not do authentication or encryption by default. Therefore, it is recommended that you take all necessary steps to make certain of the identity of clients or servers before interacting with them remotely. Because .NET remoting applications require FullTrust permissions to execute, if a unauthorized client were granted access on your server, the client could execute code as though it were fully trusted. Always authenticate your endpoints and encrypt the communication streams, either by hosting your remoted types in Internet Information Services (IIS) or by building a custom channel sink pair to do this work.
In This Section
- Remoting Example: Dynamic Publication
- Demonstrates the use of the .NET remoting classes to dynamically publish and cease publishing a particular object.
- Remoting Example: Tracking Service
- Demonstrates the use of ITrackingHandler to register marshaling, unmarshaling, and disconnection events.
- Remoting Example: Hosting in Internet Information Services (IIS)
- Demonstrates how to use IIS to host a remotable type and how to modify the client to use an BinaryFormatter object instead of the default SoapFormatter object.
- Remoting Example: Lifetimes
- Demonstrates lifetime leases and sponsors.
- Remoting Example: Channel Sink Provider
- Demonstrates how to build a channel sink provider that searches through the channel sink chain to set properties specified in the application configuration file.
- Remoting Example: CallContext
- Demonstrates how to use CallContext to pass information across a logical thread.
- Remoting Example: Asynchronous Remoting
- Demonstrates the use of asynchronous programming in a .NET remoting scenario.