2026/1/24 11:41:08
网站建设
项目流程
珠海网站建设服务,建一个购物网站需要什么条件,物流公司网站建设模板,免费logo图标在线制作 设计.NET 互操作服务的安全与使用详解 1. 安全问题 调用本地代码会破坏 CLR 通常提供的类型安全保证。如果可以调用 DLL 或 COM 组件中的任何本地方法,就可能找到能以任意方式修改任意地址数据的方法,这样 CLR 就无法保护你,也无法阻止你进行不当操作(不过操作系统的安全机制….NET 互操作服务的安全与使用详解1. 安全问题调用本地代码会破坏 CLR 通常提供的类型安全保证。如果可以调用 DLL 或 COM 组件中的任何本地方法,就可能找到能以任意方式修改任意地址数据的方法,这样 CLR 就无法保护你,也无法阻止你进行不当操作(不过操作系统的安全机制仍会限制代码的行为)。因此,使用互操作服务是一项特权操作,并非所有代码都被允许使用,例如 Silverlight 代码默认就不能使用。通常,代码需要具有完全信任权限(在完整 .NET Framework 上运行的代码通常具有完全信任权限,除非它运行在特意配置为部分信任的环境中。有些人会将 Web 服务器配置为这种方式,以最大程度降低意外打开安全漏洞的风险。使用 ClickOnce 安装的应用程序也常常配置为部分信任,这样在应用程序首次运行时就无需用户授予权限)。2. 平台调用(P/Invoke)CLR 的平台调用服务(通常缩写为 P/Invoke)允许你调用 DLL 中的本地方法。之前在示例 21 - 1 中就使用它调用了 Win32 API,这是使用它的常见原因,但它适用于任何 DLL。要使用 P/Invoke,必须声明一个 .NET 方法来表示非托管方法,这样 CLR 才能知道参数和返回值的类型。示例 21 - 8 展示了一个更简单的方法:[DllImport("Kernel32.dll")] public static extern ulong GetTickCount64();DllImport属性声明你要使用 P/Invoke,它