美国上市公司

亿元级外企IT培训企业

  • 全国服务监督电话400-827-0010
IT培训 > 资料库 > .NET Framework中的无接触部署
  • .NET Framework中的无接触部署

    发布:IT培训 来源:资料库 时间:2014-12-29

  • 代码访问安全性是保护桌面免受正在通过无接触部署方式下载的 Windows 窗体应用程序影响的关键。此模型通过匹配应用程序和应该分配给应用程序的权限来工作。在运行时,公共语言运行时从程序集中收集凭证。凭证可以采用 码源自的 Internet Explorer 区域(本地磁盘、Intranet、Internet、受信任站点或不受信任站点)的形式,也可采用代码源自的 URL(签名使用的私钥、哈希值、Authenticode 发布服务器签名等等)的形式。使用此凭证,公共语言运行时将程序集分 配给相应的代码组或类别。每个代码组都拥有分配给它的权限集,说明程序集应获得的权限,例如能否读取或写入本地磁盘、访问联网资源、打印以及访问环境变量等等。

    默认情况下,.NET Framework 附带围绕 Internet Explorer 区域设置的代码组。例如,来自 Intranet 区域的代码获得的权限很有限,因此无法执行文件 IO 访问。

    为了说明安全检查在起作用,任务管理可执行程序包含一个名为 Read Boot.ini 的工具栏按钮,该按钮尝试访问 C:\ 盘中的文件。

    您可以进行一个简单的测试,单击"Read Boot.ini"按钮,查看当应用程序请求 C:\ 根目录中的文件时会发生什么情况 - 引发安全异常,应用程序不处理该请求。

    异常返回一个文件 IO 权限异常,说明应用程序无法访问 TaskManagement.exe 请求的特定资源。

    使用多程序集应用程序的无接触部署

    在本示例应用程序中,我们已经说明了如何加载单个程序集。通过对 Assemble 对象使用 LoadFrom() 方法,.NET Framework 还可以有效地将多程序集应用程序传入客户端。

    Assemble 类具有 LoadFrom 方法,可以初始化一个对特定程序集的引用。LoadFrom 的参数是 URL 或文件路径名。指定 URL 后,.NET Framework 首先通过检查程序集下载缓存,检查客户端是否存在已命名的程序集。如果程序集不在程序集下载缓 存中,.NET Framework 将从 Web 服务器获取该程序集,并将它的副本置于下载缓存中。这样,程序集对象即可在代码中使用。

    例如,如果在一个单独的名为 AboutForm.dll 的程序集中实现了 TaskManagement About Windows 窗体,则可以在用户请求查看"About"(关于)对话框时使用 LoadFrom 下载该程序集。这样,当用户与应用程序交互时,我们只需传输应用程序所需的代 。

    无接触部署和 XML Web Service

    一个重要的安全限制是,当通过 Web 服务器分发应用程序时,其域必须与它所依赖的所有 Web 服务相匹配。例如,如果从 myserver/TaskManagement.exe 启动 TaskManagement.exe,则只允许使用myserver 上的 XML Web Service.出于安全性方面的考虑,不 许应用程序从其他服务器调用 Web 服务。

  • 上一篇:.NET正则表达式的历史

    下一篇:.Net Framework编码规范内容详解

2001-2016 达内国际公司(TARENA INTERNATIONAL,INC.) 版权所有 京ICP证08000853号-56