
七 部署 NET
安全策略 在前面一节中 我们创建了一个安全策略信任来自的代码 在实际应用中还存在这样一个问题 即我们应当方便
用户 不能要求每一个用户按照同样的步骤设置安全策略 解决办法很简单 设置好安全策略之后 我们还可以将安全策略分发给用户 用户只需一次点击就可以完成全部设置 首先我们要创建一个部署包 它将通过Windows安装文件( MSI)文件把安全策略安装到用户的机器上 *** 作方法是 右击 运行库安全策略 选择 创建部署包 如图 图 创建一个部署包 部署包的安全策略级别分三种 企业 计算机 用户 本例中 我们创建一个计算机策略的部署包 如图 注意部署包的扩展名是 MSI 图 设置要部署的安全策略为 计算机 策略 创建好部署包之后 可以将它分发给用户 只要双击运行 msi文件 Windows安装
程序就会自动安装 msi文件中定义的安全策略 另外 网络管理员还可以通过适当的配置 将配置安全策略的部署包自动发布给每一个用户 八 深入理解Assembly LoadFrom 现在 我们来看看用Assembly LoadFrom从远程服务器下载一个程序集时背后发生的事情 以下面的代码为例 指定URL Dim URL As String URL = _ 从指定的URL装入程序集 Dim a As [Assembly] a = [Assembly] LoadFrom(URL)当 NET执行LoadFrom方法时 它访//localhost/CodeDownloadDemo 寻找Web服务器上的ModuleA dll程序集 在此过程中 NET会检查以前是否下载过该程序集 如果从来没有下载过 NET就下载该程序集 并把它保存到 NET程序集下载缓冲区 第二次运行同样的代码时 NET知道该程序集以前已经下载过一次 如果Web服务器上程序集的版本和本地程序集下载缓冲区中的版本一样 NET就使用已经下载到磁盘上的程序集 假设我们现在第三次运行上述代码 NET检测到Web服务器上程序集的版本要比本地缓冲的版本新消庆庆 这时 NET就会重新下载新版的程序集 把它保存到程序集下载缓冲区 并运行它 程序集下拿握载缓冲区是位于\windows\assembly\download的一个特殊文件夹 必须指出的是 在比较程序集的本地版本和远程版本哪一个更新时 NET的判断依据是程序集的时间标记 而不是程序集的版本号 这一点很重要 特别地 如果有多个程序员协同开发和编译程序集 应当注意计算机的时间设置问题 九 当Web服务器不可用时 如果执行Assembly LoadFrom时//localhost/CodeDownLoadDemo/的Web服务器不可用 例如 用户的Internet连接出了故障 或者用户正在旅途中使用笔记本 这时应该怎么办?在这种情况下 LoadFrom执行失败 用户不能从远程服务器上的程序集装入类 有一种解决办法 虽然不那么完美 但确实行得通 即用户只要把浏览器设置成脱机工作模式就可以了 如此设置之后 Assembly LoadFrom就自动知道它应该使用程序集的下载缓冲区 十 结束语 上面介绍的所有技术都有一个限制 即如果要让自动部署技术能够在用户的机器上正常发挥 所有机器必须安装 NET框架 虽然 NET框架是免费的 但不一定每一个用户都会去安装它 如果应用程序一定要求用户下载和安装 MB的 NET框架 用户对应用程序的印象可能会受到影响 越来越多的新计算机会预先装好 NET框架 所以该问题的影响应该越来越小 目前临时的解决办法是 用Install Shield或Wise Installer之类的工具创建一个典型配置的 NET框架安装包 实现 NET框架自动安装 NET自动部署是一种非常强大的技术 它能够有效地减少部署胖客户端程序过程中面临的问题 充分运用 NET自动部署技术 我们可以保证用户总是使用最新版本的代码 却不必要求用户频繁地去访问某个网站下载更新软件 NET自动部署技差键术一项很重要的特性是安全 它使得用户既可以从指定的远程地点下载程序 同时有效地保障用户不会意外地运行来源不明的代码 lishixinzhi/Article/program/Java/hx/201311/27182
五 NET和IE安全配置 显然 要想让用户通过HTTP协议运行某个执行文件 第一个可以配置安全选项的位置应该是IE浏览器 具体的 *** 作步骤是 启动IE浏览器 转到 工具 菜单 打开 Internet选项 选择 安全 选项卡 再依次点击 受信任的站点 站点 我们可以把作为一个受信任的站点加入 注意 必须清除了 对该区域中的所缺册有站点要求服务器验证() 选项之后 才能将作为可信任站点加入 图 添加一个信任站点 现在已经是一个可信任的站点了 如果我们再次用这个URL来执行loader exe 应用程序可以启动 不过 NET仍会提示还有一些安全问题有待解决(判扮蚂如图 ) 图 应用程序在部分受信任的安全上下文中运行 这一次我们看到loader应用程序正式运行了 但有一则提示信息告诉我们应用程序当前在一个部分受信任的安全上下文中运行 因此应用程序的某些功能可能无法使用 例如 如果我们试图从Employees窗体装入数据 就会看到一个安全错误(如图 所示) 这是因为该窗体试图从localhost上SQL Server的Northwind数据库读取数据 但我们还没有授权它可以执行这一 *** 作 图 试图访问指定站点之外的资源时 NET提示错误信息 另掘埋外请注意 应用程序的标题条上自动加上了表示来源的 lishixinzhi/Article/program/Java/hx/201311/26883
你在显示子窗体的时候应该创建了清伏很多子窗体的对象吧?比如:Form2 f2=new Form2()f2.Show()Form3 f3=new Form3()f3.Shos()...
然后再在Form1的最小化事答仿携件里写:
private void Form1_SizeChanged(object sender, System.EventArgs e)
{
this.Difined()
if(this.WindowState == FormWindowState.Minimized)
{
this.Hide()
this.Visible=false
f2.Visible=false
f2.Hide()//此处必须是刚才创建的FORM2的对象大茄f2
f3.Hide()
f3.Visible=false
.......
}
}
评论列表(0条)