在IE中托管.NET Windows Forms (续)

原创 2004年09月24日 15:57:00
HTML网页和虚拟目录的创建

  在这一步骤中,我们将创建托管AuthorsWebServiceClientControl控件的HTML网页,HTML网页的代码如下所示:

<html>
<body>
<p>Authors Display Control<br> <br></body>
<object id="AuthorsControl1"
classid="http:AuthorsWebServiceClientControl.dll#AuthorsWebServiceClientControl.AuthorsControl"
height="500" width="500" VIEWASTEXT>
</object>
<br><br>
</html>

  在创建HTML网页后,我们还需要创建一个用来托管HTML网页和控件的虚拟目录。创建虚拟目录后,我们就可以将HTML网页和控件拷贝到被映射到虚拟目录的物理目录中。现在,我们就可以通过浏览HTML网页对控件进行测试了,在HTML网页中,我们会看到是窗体控件一部分的命令控件。如果点击命令按钮,它就会从客户机上的浏览器调用Web服务,并在DataGrid中显示Web服务的结果。HTML网页的输出如下所示:

49700.gif

  调试Windows Forms控件

  为了调试该控件,我们需要完成下面的步骤:

  ·打开浏览器,请求浏览上面创建的HTML网页。

  ·打开Visual Studio.NET,从菜单中选择“工具”->“调试进程”,显示下面的对话框:

49701.gif

  ·在进程对话框,选择IEXPLORE.EXE,点击“附加”按钮。点击“附加”按钮时,会出现下图所示的对话框,它会提醒你选择要调试的程序类型。在该对话框中,确保选择了清单中的“公共语言运行库”选项。

49702.gif

  ·点击上面对话框中的“OK”按钮将使我们重新返回到进程对话框,这次,我们只需点击“关闭”按钮即可。

49703.gif

  ·从“文件”->“打开”->“文件”菜单中打开用户控件文件AuthorsWebServiceClientControl.cs,并在命令按钮的Click事件中设置断点。

  ·返回到浏览器并点击命令按钮,程序会自动运行到刚才在控件中设置的断点处,我们就可以使用Visual Studio .NET的所有功能调试代码。

49704.gif

代码访问权限和Windows Forms控件

  象我们在上面讨论的那样,当控件在IE中执行时,它会利用了.NET运行时间库提供的代码访问权限。为了理解在IE中运行的Windows Forms控件是如何与由.NET运行时间库提供的代码访问安全机制协调运行的,我们在Authors窗体控件中添加几行代码,并创建新的事件日志源。经过修改后,控件的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");
}
}
}

  在上面的几行代码中,我们检查名为TestSource的EventLog源是否存在,如果不存在,则创建一个,否则我们删除现有的事件源,再创建一个新的事件源。也许你已经想到,执行这样的操作需要更高的权限,从互联网上下载的控件不应当具有执行这种操作的权限。为了确保这一点,我们将控件的输出拷贝到虚拟目录中。在完成这一操作后,如果用浏览器浏览托管有控件的HTML网页,我们会看到下面的对话框:

49705.gif

  上面的对话框清楚地表明,控件中的代码受到了.NET时间运行库中代码访问安全机制的限制。

  小结

  在在IE中使用Windows Forms前,我们需要注意它的优点和限制。它的主要优点有:

  ·通过Web实现动态丰富用户体验的能力。

  ·客户端编译代码的自动缓冲。

  ·与.NET代码访问安全机制的无缝集成,使我们能够从客户端利用.NET安全模型

  ·胜过Java applets的性能。

  限制包括:

  ·要求客户端安装有Windows操作系统。

  ·只有IE 6.0提供对这类托管方式的支持

  ·要求客户机上安装.NET运行时间库

  ·要求服务器端至少安装Windows 2000、IIS 5.0或者以上版本软件。

  由于会受到上面的种种限制,检测客户机是否具有这种能力是必要的。例如,由于在IE中托管窗体控件需要在客户机上安装有.NET运行时间库,我们就可以编写检查客户机是否安装有.NET运行时间库的代码。我们可以通过检查Request.Browser.ClrVersion属性的值来完成这一操作,如果安装了,则会返回版本号,否则会返回0.0。

  结论

  在本篇文章中,我们学习了如何在IE中托管Windows Forms控件以及如何调试控件,我们还学习了如何利用.NET代码访问安全机制配置在浏览器中运行时控件能够执行的操作。
尽管这一技术要求特定的平台,但它仍然不失为一种有前途的技术,尤其是考虑到.NET Framework将成为未来版本的Windows的有机组成部分。

在IE中托管.NET Windows Forms

在IE中托管.NET Windows Forms ...
  • aiwtu
  • aiwtu
  • 2006年12月16日 14:53
  • 760

在IE中托管.NET Windows Forms(From YESKY)

http://www.yesky.com/SoftChannel/72342380484755456/20030701/1711401.shtml
  • gaofeng2000
  • gaofeng2000
  • 2004年11月23日 23:44
  • 1094

在IE中托管.NET Windows Forms (转)

如果曾经使用Java开发过Web应用程序,你一定会对Java applets比较熟悉,这是一种基本上在浏览器中运行的小型程序。当浏览器加载包含有Java applets标志的HTML代码时,Java ...
  • 32631860220
  • 32631860220
  • 2004年09月24日 14:06
  • 531

在实战中成长Windows Forms开发之路(奋斗的小鸟)_PDF 电子书

试读地址:http://img.duxiu.com/n/jpgfs.shtml?kid=6A6A7170726F6B6C3139333931323839&pagetype=5&pagenum=1&te...
  • tjoy2005
  • tjoy2005
  • 2012年12月21日 20:34
  • 1165

自定义Windows窗体的DLL或控件的.NET框架的任何开发环境的条形码控件.NET Windows Forms Barcode

.NET Windows Forms Barcode 控件是一个成熟的,易用的自动化组件,自2002年就被用于到IDAutomation的Barcode Label Software和Barcode ...
  • sb360doc
  • sb360doc
  • 2014年05月31日 16:19
  • 816

使用IIS在Windows上托管ASP.NET Core(本文仅针对Window服务器)

使用IIS在Windows上托管ASP.NET Core(仅针对服务器)博文背景: 最近有点想用.Net Core进行做毕业设计,于是在阿里云买了一台云服务器,学生价一折超级便宜(看着它提示毕业以后...
  • qq_27445903
  • qq_27445903
  • 2017年10月16日 16:11
  • 538

Windows Forms 2.0 Programming (2nd Edition)

Windows Forms 2.0 Programming (2nd Edition) (Microsoft .NET Development Series) by Chris Sells, Mich...
  • linhanshi
  • linhanshi
  • 2007年02月06日 00:01
  • 1126

使用 C++ 的托管扩展针对 Windows 窗体编程 (转)

发布日期: 8/9/2004 | 更新日期: 8/9/2004Chris Sells 和 Sam Gentile适用于:Microsoft®Visual C++® .NETWindows Forms摘...
  • eblog
  • eblog
  • 2004年09月20日 15:29
  • 4111

MVC .NET的FormsAuthentication.SetAuthCookie在IE10中无效的问题

MVC .NET4 IE10下FormsAuthentication.SetAuthCookie无效的问题 最初的问题是网站在IE10下不兼容,使用兼容性代码:   让IE强制使用兼容模式...
  • yz1988computer
  • yz1988computer
  • 2015年01月27日 15:39
  • 529

在IE中托管Windows Form

如果曾经使用Java开发过Web应用程序,你一定会对Java applets比较熟悉,这是一种基本上在浏览器中运行的小型程序。当浏览器加载包含有Java applets标志的HTML代码时,Java ...
  • leon28
  • leon28
  • 2008年10月20日 09:50
  • 478
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在IE中托管.NET Windows Forms (续)
举报原因:
原因补充:

(最多只允许输入30个字)