由於考量 Internet 应用的安全性,XBAP 预设之安全设定是极为严格的,例如不允许使用 TCP/IP Socket,不允许档案写入,不允许存取下载伺服器以外之 Web 伺服器...,若应用
程式需要使用这些能力,则必须将此 XBAP 应用程式设定为 Full Trust Application。假设我们运用 Visual Studio 2008 开发一个简单的 XBAP 应用程式如下,当按下按钮btnGenerate 後则会写入一个名为 test.txt 的文字档案。程式码动作如下usingSystem.IOprivate voidbtnGenerate_Click (objectsender,RoutedEventArgse){try{FileInfoFInfo =newFileInfo(test.txt)StreamWriterTex = FInfo.CreateText()Tex.WriteLine(Hello World)Tex.WriteLine(WPF XBAP Demo)Tex.Write(Tex.NewLine)Tex.Close()TxtResult.Text = 档案建立成功}catch(Exceptionex){TxtResult.Text = 档案建立失败!! ( + ex.Message + )}}当此应用程式於 Visual Studio 2008 环境下执行时,按下按钮便会出现如下安全相关之错误讯息。这是因为 XBAP 预设是不允许写入下载环境档案系统造成的。若要让 XBAP 应用程式能够做出写入档案的动作,可以在 Visual Studio 2008 的选单中选取此专案档之 Property,将出现如下图 Security 的页面。在此页面中我们可以看到 Visual Studio 2008 预设是采用 This is a partial trust application 的设定,此时我们必须手动点选 This is a full trust application 选项。在 Visual Studio 2008 内重新编译後加以执行,按下此 XBAP 应用程式的按钮建立档案,如下图所示,我们便会发现此 XBAP 应用程式已经可以正确执行写入档案的动作了。但是 XBAP 布署的问题尚未完全结束,当我们利用 Visual Studio 2008 的 Publish 功能成功地布署到同一台 PC 的 Windows Vista II7 的环境後,再透过 Web 浏览器连接 localhost 加以测试,却又发生了 未授与信任 的错误讯息。由於此一 XBAP 应用做出许多有可能危及 PC 安全的动作,也因此必须要让使用者信任此一 XBAP 应用程,所谓信任的方式就是使用者必须手动汇入此应用程式之
凭证 (Certificate)。这个汇入凭证的动作;在一个良好管理的企业内部网路,可以运用管理工具或 Windows Server Group Policy 自动化达成。但是在 Internet 应用时,只有悉圆册让使用者自行手动地汇入凭腔蠢证。可以在 Visual Studio 2008 的选单中选取此专案档之 Property,接者点选 Singing 页面。倘若我们勾选了Sign the ClickOnce manifests 的 Checkbox,则 Visual Studio 2008 预设便会产生一个与专案同名之 Temporary Key,例如专案名称是 WpfBrowserApplication1 ,临时用的凭证名称就是 WpfBrowserApplication1_TemporaryKey.pfx。这个测试用凭证的详细资讯我们可以按下同一画面中的 More Details 按钮,就会出现如下的画面,告知此凭证的发行者与有效期限。为了让您的 XBAP 或 ClickOnce 应用程式获取更高层级的信任,您必须对每部将会执行应用程式的用户端电脑,将应用程式凭证加入受信任的发行者的凭证存放区。如果我们应用程式做数位签章的凭证并非知名的国际机构核发,当然 Microsoft Internet Explorer 内也不会内建於 信任的根凭证授权之中睁宏。如下图,我们可以利用 Microsoft Management Console (mmc.exe) 来了解目前安装的凭证资讯,由Microsoft Management Console中我们可以知道,此一临时用之应用程式凭证尚未被汇入 信任的根凭证授权 (Trusted Root Certification Authorities) 与受信任的发行者 (Trusted Publishers)。回到 Visual Studio 2008 我们可以在专案档之 Property ,接者点选 Singing 页面。按下同一画面中的 More Details 按钮後,我们可以在凭证的对话方块内按下安装按钮。并将此凭证置放到 受信任的发行者的凭证存放区。此外也要将此凭证安装到 信任的根凭证授权的凭证存放区。接下来再透过 Web 浏览器测试 localhost 便不会再出现 未授与信任 的错误讯息了。这类 XBAP 应用程式一旦通过凭证检查并正确执行後,就会被 Cache 在 PC 端存放 ClickOnce Application 的 Cache 内,若想要快速清除 Cache 内的 XBAP 应用程式以便测试凭证相关设定,记得要利用 Windows SDK 内的工具程式 mage.exe,在 Console 模式中下达mage -cc即可立即清除 ClickOnce Application Cache 的内容。若是在没有安装 Windows SDK 的用户端环境,则可以在命令列下达
Wpf浏览器应用程序,即为XBAP应用程序。
2.Wpf应用程序,如果要 *** 作客户机的一些资源,则需要很高的信任级别。对于C/S模式来说,客户端作为本地应用,权限很高。族困对于B/S模式来说,客户端作为浏览器承载的网站,权限受限。使用WPF开发企业内部应用程序时,可以给与厅悔应用程序较高的权限,以执行一些本地 *** 作,达到丰富站点(系统)功能的目的。这一点和一般的Web应用程序有所不同,这是企业内部应用与面向大众的门户站点的不同之处。
3..发布位置可以为本地路径(Web站点虚拟路径、Ftp服务器)或者外部Url。两者的区别在于是否是本地,本地的实现方式又可以为IIS或者FTP或者文件夹。
4.发布的形式,自然是选择IIS,Visual Studio以管理员身份运行,可以看到IIS站点的内容,否则只可以看到Express网站。Express只支持一个Website,不过一般一个Website足够,在Website下创建多个应用程序Application即可。
5.在IIS中,Default Web Site默认站点下创建一个应用程序。
6.选择该应用程序。使用发布向导发布,或者直接发布。默认应用程序引用到的资源文件、程序集会被打包,根据.Net的版本也会生成相应的系统运行条件检查清单。如果使用了WinForm并进一步使用了本地的COM接口,需要注意此类应用程序的检查,例如调用本地的PDF阅读器浏览PDF文件等。发布后,浏览器自动打开该站点的安装页面(B/S应用程序是不需要安装的,C/S应用程序可以说是独立安装包的,例如Exe文件、msi等,WPS的浏览器应用程序可以理解为浏览器的插件,即B/S的客户端内容为JavaScript、Html、CSS,浏览器是可以解释执行的,而WPF的内容浏览器需要插件来解释,类似于淘宝输入密码的地方,需要安装一个ActiveX插件,然后输入密码的 *** 作由该插件来进行处理。如果你安装了相应的.Net框架,则该“插件”已经安装,但浏览器默认是禁用的,因此需要启用,并且该插件只针对于IE浏览器的)。
7.运行安装后,会有应用程序被禁用的错误提示信息。
8.WPF应用程序默认在XBAR沙盒中运行,如果有读取客户端本地资源的 *** 作,则超出了沙盒,因此会被拒绝,因此需要被信任以提升执行权限。
9.处理这个问题,需要为应用程序签名,证明该应用程序是可以被信任的,至少给出客户端该应用程序的证书,以决定是否可以对其信任。WPF浏览器应用程序的信任分为两部分。首先将站点添加到信任站点,否则站点使用Internet站点的权限运行,然后将信任站点或者Internet站点(不建议)设置运行XAML(WPF)执行。
进行了该 *** 作后,扮穗正客户端在访问应用程序后,在运行安装后,既可以成功安装,而不会出现被禁用的错误。但因为该应用程序没有签名证书,因此会有d出框来确认是否要运行该应用程序。在点击了信任后,下次访问即不会d出提示。
评论列表(0条)