b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

ClickOnce部署(5):自定义安全权限

电脑杂谈  发布时间:2016-04-20 10:39:32  来源:网络整理

你是否正在寻找关于clickonce的内容?让我把最宝贵的东西奉献给你:

今天我们来探讨一下在clickonce部署中如何严控制应用程序的权限,。

演示应用

为了在下文中能更好地演示,我们先要做一个测试项目。也为了显得简单易懂,我使用最常用且最常见的WinForm项目,这是地球上最丰富的物种。

咱们做一个MD5的计算程序,这个应该够简单了吧?程序的功能是浏览打开一个文件,然后计算它的MD5,最后以字符串的形式输出。

界面大致这样:

ClickOnce部署(5):自定义安全权限

其中用来输入文件名的文本框叫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;

}

}

}

}

好,运行一下,试试是否达到预期效果。如下图:

ClickOnce部署(5):自定义安全权限

OK,相当Nice,基本符合要求了。接下来我们就要对其进行部署了。

完全信任权限

部署我们肯定都会,而且前面我们也介绍过了。不过这一次我们重点是设置安全权限。为了保护我们的程序不被别有用心的人拿来干坏事,有时候我们没有必要让应用程序具有过高的权限。

在项目属性窗口中,切换到"安全性"选项卡,勾选"启用clickonce安全设置"复选框,然后下面的几个单选项就变为可用状态。我们保持选中第一个,即"这是完全可信的应用程序"。最后保存。

现在我们部署这个应用程序,相信大家都会了,就是切换到"发布"选项卡来完成,和前面所讲的方法一样。

安装后我们看到程序正常运行了。

ClickOnce部署(5):自定义安全权限

部分可信任权限

所谓部分可信任,就是相对我们前面的完全信任权限而言的,即应用程序不具备所有权限,比如,可能只允许应用程序访问D盘下的文件,或者说不允许应用程序进行反射操作等。

要知道有哪些权限可以自定义也很简单,打开"对象浏览器"窗口找到System.Security.IPermission接口,然后我们查看实现它的类,以及这些类的子类,一层一层往下翻,那些命名为XXXPermission的类就是对应的权限了。除此之外,我们还会看到一些Attribute,如FileDialogPermissionAttribute,即它们的命名规律是XXXPermissionAttribute,我们只要找到这些规律,后面在配置权限时就好办了。

现在,我们先不管权限如何配置,因为VS默认会为我们定义两个权限集。依旧,打开项目属性窗口,同样切换到"安全性"选项卡,这一次我们选择"部分信任的应用程序",如下图所示:

ClickOnce部署(5):自定义安全权限

在"要从中安装应用程序"下面的下拉列表框,为我们预定义了两种权限集,一种是内部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

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...