在IE浏览器中使用Windows窗体控件(三)
2024-07-21 02:16:22
供稿:网友
注册会员,创建你的web开发资料库,在ie浏览器中使用windows窗体控件(三)
作者::thiru thangarathinam
翻译:秋枫
调试windows窗体控件
要调试窗体控件,你需要按照下面步骤进行。
1.打开浏览器并请求包含窗体控件的那个html页面。
2.打开visual studio.net同时选择工具->调试进程就会显示下面的对话框。
在这个进程对话框中,选择iexplore.exe 点击附加按钮。当你点击附加按钮时会跳出一个对话框提示你选择要调试的程序类型。我们选择了common language runtime 和script两项,如下图:
确定关闭上面的窗口和进程窗口。
通过vs.net的文件菜单打开用户控件文件 authorswebserviceclient.cs,在源代码中设置断点。这样一旦你设置断点,你就可以调试该控件了,如下图所示。
windows窗体代码访问权限
就象我们以前讨论的一样。当窗体控件在ie中执行时,他使用由.net运行时提供的权限。要弄清楚控件怎样使用由.net运行时提供的代码访问安全来在ie中运行,让我们回到前面,在窗体控件load事件中加入下面的代码:
private void authorscontrol_load(object sender, system.eventargs e)
{
if (!eventlog.sourceexists("testsource"))
eventlog.createeventsource("testsource", "testlog");
else
{
eventlog.deleteeventsource("testsource");
eventlog.createeventsource("testsource", "testlog");
}
}
在上面的代码中我们判断web服务器上是否存在”testlog”的日志源,如果不存在我们就创建他,如果存在就删除重建。就象你预料的一样,执行这些代码需要有更多的权限,所以上面的代码通过internet该用户控件将不会正常工作,你将会看到如下的提示窗口。
通过上面窗口我们可以清楚的看到你的访问被.net运行时所限制。
在ie中使用窗体控件时,你需要意识到他的优点和局限。主要的优点包括:
1.通过web实现丰富的动态界面。
2.无缝结合.net的代码安全策略。
3.优于java applets的表现。
限制包括:
1.客户端需要是windows操作系统
2.需要ie6.0的支持
3.客户端需要安装.net运行时环境
4.服务器端需要是window2000和iis5.0或者更高版本
由于上面的限制,对客户端和服务器端数据的传输这也许也是有利的。比如说由于让windows窗体控件在客户端ie中使用需要客户端安装有.net runtime,我们可以写一些代码来判断客户机是否安装有.net runtime,通过这一特征我们可以获得版本号,否则会得到0.0。
结论
在这篇文章中,我们讨论了怎样在ie中使用浏览窗体控件以及在进程中进行调试。同时也讲到了在ie中的.net代码访问安全控制。
虽然这项技术的实现需要客户端安装.net运行时,不过我们可以相信在以后的windows操作系统中将会集成.net framework,windows2003就是一个很好的例子。
最后,我希望你会发现这篇文章对你有所帮助,同时谢谢你的阅读。
about the author
thiru has almost six years of experience in architecting, designing, developing and implementing applications using object oriented application development methodologies. he also possesses a thorough understanding of software life cycle (design, development and testing).
he is an expert with asp.net, .net framework, visual c#.net, visual basic.net, ado.net, xml web services and .net remoting and holds mcad for .net, mcsd and mcp certifications.
thiru has authored numerous books and articles. he can be reached at [email protected]