如何在ASP.NET页面中嵌入WINFORM控件三
前两篇文章讲述了如何在ASP.NET页面中嵌入WINFORM控件,并且通过第二篇我们了解到有些情况下,只有本地网络或将访问的网站添加到信任 站点才可以正确的访问该控件。其实有时候会更复杂,我们还需要调整.NET程序集的权限,本篇就是一个具体的例子。该例子会通过WINFORM控件在本地 磁盘中写入文件。
一 打开前两篇创建的项目,并添加WINFORM用户控件IoTest,代码如下:
- using System.IO;
- namespace Liuw.Net.WindowsControlLibrary
- {
- public partial class IoTest : UserControl
- {
- public IoTest()
- {
- InitializeComponent();
- }
- public void Write(string path)
- {
- File.WriteAllText(path, "welcome to www.liuwu.net ");
- }
- }
- }
功能很简单,仅提供一个公共的Write方法,向指定的文件写入信息。
二 编译该项目,并将Liuw.Net.WindowsControlLibrary.dll拷贝到WebSite所在目录
三 添加IoTest.aspx页面,并添加以下代码
- <mce:script type="text/javascript"><!--
- function Write()
- {
- var obj = document.getElementById('ctl');
- obj.Write("D:/Test.txt");
- }
- // --></mce:script>
- <input type="button" value="Write" onclick="Write()" />
- <object id="ctl" classid="Liuw.Net.WindowsControlLibrary.dll#Liuw.Net.WindowsControlLibrary.IoTest"></object>
可以看出我们是在D盘写入Test.txt文件。
四 访问该页面,我们会得到脚本错误
请求“System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”类型的权限已失败。
其实不用紧张,这说明该网站没有执行指定程序集的权限,那该如何做呢,下面就来配置相关权限。
五 打开“管理工具”/ “Microsoft .NET Framework 2.0 配置”
六 展开“运行库安全策略”,并点击右边的“调整区域安全性”
七 选择下一步,并将 "本地Intranet "设为完全信任
因笔者测试的地址用的是localhost,如果你已将网站添加的信任网站,则调整信任网站为完全信任。
八 重新启动IE,就可以了。
注意:该配置工具只有装了SDK以后才会有,所以为了有更强的操作性,我们必须寻找其他设置权限的途径,以后的章节会针对该问题进行讨论。
前篇: