如何使Wpf浏览器应用程序被完全信任运行
原文地址链接:http://blogs.microsoft.co.il/maxim/2008/03/05/how-to-run-wpf-xbap-as-full-trust-application/
Wpf浏览器应用程序,即为XBAP应用程序。
Wpf应用程序,如果要操作客户机的一些资源,则需要很高的信任级别。
对于C/S模式来说,客户端作为本地应用,权限很高。
对于B/S模式来说,客户端作为浏览器承载的网站,权限受限。
使用WPF开发企业内部应用程序时,可以给与应用程序较高的权限,以执行一些本地操作,达到丰富站点(系统)功能的目的。
这一点和一般的Web应用程序有所不同,这是企业内部应用与面向大众的门户站点的不同之处。
发布位置可以为本地路径(Web站点虚拟路径、Ftp服务器)或者外部Url。两者的区别在于是否是本地,本地的实现方式又可以为IIS或者FTP或者文件夹。
发布的形式,自然是选择IIS,Visual Studio以管理员身份运行,可以看到IIS站点的内容,否则只可以看到Express网站。Express只支持一个Website,不过一般一个Website足够,在Website下创建多个应用程序Application即可。
在IIS中,Default Web Site默认站点下创建一个应用程序。
选择该应用程序。使用发布向导发布,或者直接发布。默认应用程序引用到的资源文件、程序集会被打包,根据.Net的版本也会生成相应的系统运行条件检查清单。如果使用了WinForm并进一步使用了本地的COM接口,需要注意此类应用程序的检查,例如调用本地的PDF阅读器浏览PDF文件等。
发布后,浏览器自动打开该站点的安装页面(B/S应用程序是不需要安装的,C/S应用程序可以说是独立安装包的,例如Exe文件、msi等,WPS的浏览器应用程序可以理解为浏览器的插件,即B/S的客户端内容为JavaScript、Html、CSS,浏览器是可以解释执行的,而WPF的内容浏览器需要插件来解释,类似于淘宝输入密码的地方,需要安装一个ActiveX插件,然后输入密码的操作由该插件来进行处理。如果你安装了相应的.Net框架,则该“插件”已经安装,但浏览器默认是禁用的,因此需要启用,并且该插件只针对于IE浏览器的)。
运行安装后,会有应用程序被禁用的错误提示信息。
WPF应用程序默认在XBAR沙盒中运行,如果有读取客户端本地资源的操作,则超出了沙盒,因此会被拒绝,因此需要被信任以提升执行权限。
处理这个问题,需要为应用程序签名,证明该应用程序是可以被信任的,至少给出客户端该应用程序的证书,以决定是否可以对其信任。
WPF浏览器应用程序的信任分为两部分。
首先将站点添加到信任站点,否则站点使用Internet站点的权限运行,然后将信任站点或者Internet站点(不建议)设置运行XAML(WPF)执行。
进行了该操作后,客户端在访问应用程序后,在运行安装后,既可以成功安装,而不会出现被禁用的错误。
但因为该应用程序没有签名证书,因此会有弹出框来确认是否要运行该应用程序。在点击了信任后,下次访问即不会弹出提示。
如何使Wpf浏览器应用程序被完全信任运行的更多相关文章
- WPF浏览器应用程序与JS的互调用(不用WebBrowser)
首先说些题外话,很久没有写博客了,空间里面的大部分文章还是11年写的.那时候刚毕业就来到这家公司,参与到一个Asp.net MVC的项目开发中,这个项目是一个全新的项目,连项目开发框架都没有,亏得领导 ...
- 一步一步部署WPF浏览器应用程序
WPF浏览器应用程序与Silverlight,Asp.net相比,同是发布到服务器,在IE中运行.WPF浏览器应用程序部署起来却相对困难. 相信很多朋友在第一次部署WPF浏览器应用程序时,都遇到&qu ...
- 使VS开发的程序在Win7系统运行时自动提升权限
软件开发时,总是会遇到在Win7系统上运行不起来或者异常的情况,这通常是用户的权限不够引起的. 下面提供一个可以使程序运行时,自动提升用户权限的方法. 1.右键点击启动项目,单击"属性&qu ...
- WPF ClickOnce应用程序IIS部署发布攻略
WPF程序非常适合公司内网使用,唯一缺点就是客户端要安装.net框架4.0.优势也很明显,在客户端运行的是一个WinForm程序,自动下载,可以充分利用客户机的性能,而且是以当前的Windows用户权 ...
- 使WPF程序应用预置的控件风格, 如Aero, Luna, Royale, Classic等
原文:使WPF程序应用预置的控件风格, 如Aero, Luna, Royale, Classic等 WPF预设有Aero, Classic, Luna, Royale主题, WPF程序会根据 ...
- 【Abode Air程序开发】移动设备、桌面和浏览器应用程序开发的差异
移动设备.桌面和浏览器应用程序开发的差异 在移动设备应用程序中使用 Spark 和 MX 组件的限制 移动设备应用程序在性能方面的注意事项 浏览器 将应用程序部署为 SWF 文件,以用于在浏览器中运 ...
- 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0
本文转自 https://blog.csdn.net/WPwalter/article/details/82859449 使用 .NET Core 3.0 Desktop API Analyzer 分 ...
- iOS开发UI篇—简单的浏览器查看程序
iOS开发UI篇—简单的浏览器查看程序 一.程序实现要求 1.要求 2. 界面分析 (1) 需要读取或修改属性的控件需要设置属性 序号标签 图片 图片描述 左边按钮 右边按钮 (2) 需要监听响应事件 ...
- 6个可以隐藏运行bat,浏览器等程序的方法
在电脑启动时或者设置时间时运行指定的程序很容易实现.但是有时候还需要运行时不显示主界面,隐藏到后台运行.比如:开机时一段Bat批处理执行删除默认共享; 开机自动运行浏览器隐藏到后代打开指定网页等,希望 ...
随机推荐
- 干货 | 精选《SQL注入、渗透、反病毒》学习总结集锦给你们~
学到手的都是本事,如果觉得对你有帮助也欢迎分享给身边的基友们吧! 分享干货,手留余香哦~ 本次“开学季拜师活动”的徒弟们在师父的精心指导下,在短短5天内得到了迅速地成长,以前或当时遇到的问题都能够柳暗 ...
- HTTP 缓存机制详解
从这里看的 http://mp.weixin.qq.com/s/8UXEMQBkV9hHwtu9R7mV5w
- samba服务器的安装与配置(之前是因为没有把共享文件权限放开!)(windows7和centOS6)
注:centOS6跟centOS7安装方法不一样哦.以下是centOS6的安装过程. 安装:yum -y install samba 启动:/etc/init.d/smb start 设置开机启动:c ...
- 解决self.encoding = charset_by_name(self.charset).encoding
解决self.encoding = charset_by_name(self.charset).encoding def createMysqlTable(tablename): # config = ...
- urllib的使用
1.urllib 中的urlopen urllib.urlopen(url,data) 如果请求是json格式,则data是json.dumps(data_dict)形成的数据,注意,不能在进行url ...
- python里有意思的文件查找glob模块
python标准库之glob介绍 glob 文件名模式匹配,不用遍历整个目录判断每个文件是不是符合. 1.通配符 星号(*)匹配零个或多个字符 import glob for name in glob ...
- tp5.0 根据经纬度 获取附近信息
自己备注一下 /* *参数说明: *$lng 经度 *$lat 纬度 *$distance 周边半径 默认是500米(0.5Km) */ public function returnSquarePoi ...
- Linux/Mac安装oh-my-zsh后不执行~/.bash_profile、~/.bashrc解决办法
安装了zsh之后默认启动执行脚本变为了-/.zshrc. 解决办法: Mac: 修改-/.zshrc文件,在其中添加:source -/.bash_profile.source -/.bashrc:注 ...
- 全面解析C#中参数传递
一.引言 对于一些初学者(包括工作几年的人在内)来说,有时候对于方法之间的参数传递的问题感觉比较困惑的,因为之前在面试的过程也经常遇到参数传递的基础面试题,这样的面试题主要考察的开发人员基础是否扎实, ...
- shiro学习笔记_0500_授权
1,授权:给身份认证通过的人,授予他可以访问某些资源的权限. 2,权限粒度:分为粗粒度和细粒度. 粗粒度:例如对 user 的 crud,也就是通常所说的对表的操作. 细粒度:对表中记录的操作.如 只 ...