远程允许你在应用程序域、进程,或者计算机之间来设置透明化的调用。但是,代码访问安全通道却无法跨越多个进程或者机器边界(它只在相同进程的应用程序域之间才适用)。
任何能够被远程访问的类(MarshalByRefObject 的派生类)都需要承担相应的安全责任。并且代码只应该在调用代码能够隐式地被信任的时候在闭合的环境中被使用,或者远程调用应该被设计成不受被保护代码暴露了可能被恶意使用的入口的影响。
通常,你始终都不应该暴露通过声明 LinkDemand 与 InheritanceDemand 安全检查而被保护的方法、属性,或者事件。因为在远程环境中,这些检查是不会被执行的。然而对于其他的安全检查(比如 Demand、Assert,等等),则只会在应用程序域之间运作,但是不会在跨进程或者跨机器的情节中运作。