你是否正在寻找关于clickonce的内容?让我把最宝贵的东西奉献给你:
今天我们来探讨一下在clickonce部署中如何严控制应用程序的权限,。
为了在下文中能更好地演示,我们先要做一个测试项目。也为了显得简单易懂,我使用最常用且最常见的WinForm项目,这是地球上最丰富的物种。
咱们做一个MD5的计算程序,这个应该够简单了吧?程序的功能是浏览打开一个文件,然后计算它的MD5,最后以字符串的形式输出。
界面大致这样:

其中用来输入文件名的文本框叫txtInput,用来显示计算结果的文本框叫txtOutput,为了方便输入文件名,我们在输入文本框的右侧放一个按钮,点击后通过OpenFileDialog来浏览文件。
然后处理的代码如下:
using System;
……
using System.Windows.Forms;
using System.Security.Cryptography;
using System.IO;
namespace md5ComputeApp
{
public partial class Form1 : Form
{
……
private void button1_Click(object sender, EventArgs e)
{
if (File.Exists(this.txtInput.Text) == false)
{
MessageBox.Show("靠,文件不存在,计算条毛啊。"); return;
}
MD5 md5 = new MD5CryptoServiceProvider();
// 打开文件流
FileStream fs = File.OpenRead(txtInput.Text);
// 开始计算
byte[] dataBuffer = md5.ComputeHash(fs);
// 关闭流
fs.Close();
fs.Dispose();
fs = null;
// 转换为字符串
StringBuilder bd = new StringBuilder();
foreach (byte b in dataBuffer)
{
bd.Append(b.ToString("x2"));
}
// 显示结果
this.txtOutput.Text = bd.ToString();
}
private void btnBrowser_Click(object sender, EventArgs e)
{
if (this.openFileDialog1.ShowDialog().Equals(DialogResult.OK))
{
this.txtInput.Text = this.openFileDialog1.FileName;
}
}
}
}
好,运行一下,试试是否达到预期效果。如下图:

OK,相当Nice,基本符合要求了。接下来我们就要对其进行部署了。
部署我们肯定都会,而且前面我们也介绍过了。不过这一次我们重点是设置安全权限。为了保护我们的程序不被别有用心的人拿来干坏事,有时候我们没有必要让应用程序具有过高的权限。
在项目属性窗口中,切换到"安全性"选项卡,勾选"启用clickonce安全设置"复选框,然后下面的几个单选项就变为可用状态。我们保持选中第一个,即"这是完全可信的应用程序"。最后保存。
现在我们部署这个应用程序,相信大家都会了,就是切换到"发布"选项卡来完成,和前面所讲的方法一样。
安装后我们看到程序正常运行了。

所谓部分可信任,就是相对我们前面的完全信任权限而言的,即应用程序不具备所有权限,比如,可能只允许应用程序访问D盘下的文件,或者说不允许应用程序进行反射操作等。
要知道有哪些权限可以自定义也很简单,打开"对象浏览器"窗口找到System.Security.IPermission接口,然后我们查看实现它的类,以及这些类的子类,一层一层往下翻,那些命名为XXXPermission的类就是对应的权限了。除此之外,我们还会看到一些Attribute,如FileDialogPermissionAttribute,即它们的命名规律是XXXPermissionAttribute,我们只要找到这些规律,后面在配置权限时就好办了。
现在,我们先不管权限如何配置,因为VS默认会为我们定义两个权限集。依旧,打开项目属性窗口,同样切换到"安全性"选项卡,这一次我们选择"部分信任的应用程序",如下图所示:

在"要从中安装应用程序"下面的下拉列表框,为我们预定义了两种权限集,一种是内部Intranet,一种是广域Internet。我们可以根据具体情况来选。
这里顺便告诉大家,这几个预定义的权限集在哪里。打开C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\PermissionSets目录,你会看到有三个XML文件,和上面安全性配置上的"完全信任",部分信任中的"Internet"、"Intranet"相对应。我这里是.NET 4.5.1,具体看你安装的版本。
FullTrust.xml——表示完全信任的权限配置。
Internet.xml——表示Internet上的应用的权限配置。
LocalIntranet.xml——本地Intranet的权限配置。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-2227-1.html
臭猴子
不行贿能行吗