NET移植案例学习:建造Web站点(2)

2016-01-29 19:16 0 1 收藏

NET移植案例学习:建造Web站点(2),NET移植案例学习:建造Web站点(2)

【 tulaoshi.com - ASP 】

    移植方法的选择

  将站点移植到Visual Basic .NET和.NET框架的第一步是看看有哪些方法可供选择。现在有三种方法可以使用:

  · 将站点和Visual Basic 6.0的组件移植到ASP .NET和Visual Basic .NET

  · 将站点移植到ASP .NET,再用COM+ interoperability与现存的Visual Basic 6.0组件通讯

  · 不改变现存的站点,而通过增加用ASP .NET和Visual Basic .NET写的新的功能模块来扩展站点的功能

  在开始开发之前,开发小组确定了利用.NET的哪些功能模块来替代网站中复杂的,且有时会有问题的代码,并增加一些新的功能。具体的讲,他们希望按下面的要求重建网站:

  · 用ASP .NET认证来替代原来的用户安全机制

  · 用ASP .NET Web Form确认控件来替代客户端用于报告产品漏洞和描述缺点的确认逻辑

  · 用ASP .NET Web Services将Microsoft其它的网站溶入beta版产品漏洞报告体系中

  · 利用.NET框架的本地化功能建造一个可以很容易实现本地化的Web站点

  · 利用ASP .NET向用户提供个性化的菜单和横幅图片

  为了充分利用这些特点,开发组决定将ASP页面移植成ASP .NET页面。他们将不移植现存的Visual Basic 6.0的ActiveX组件,而是创建新的Visual Basic .NET组件来实现Web Service和本地化。

  现在让我们看看为了完成移植,对这个网站到底做了哪些修改。

  结合ASP .NET认证功能

  移植的第一步就是用ASP .NET中基于cookie的认证机制来替换原来的客户安全机制。这种安全认证机制首先出现在PDC技术预览中,并在Visual Studio .NET Beta 1中得到了发展。它的目标是确定谁在访问网站,而不是阻止用户访问。因此,开发组修改了成员资格系统,帮助用户注册到Web站点,并且在以后的Beta版产品中可以继续使用。

  识别每个访问者的目的是跟踪他们报告的漏洞和缺点,并与他们进行必要的交流,以彻底解决问题。除了把用户的反馈送到特定的测试站点,用户还可以定制这个站点,以满足自己的需要,帮助客户将注意力集中在他们需要的信息上。把用户和他们感兴趣的内容联系起来能帮助站点管理员了解用户对什么问题最感兴趣。大多数测试站点包括了Visual Studio .NET和.NET框架各个方面的内容,允许用户访问站点上所有的文档,但某些用于特定方面(比如Visual Studio .NET IDE shell整和)的测试站点利用过滤器向客户只提供他们感兴趣的文档。

  原先使用的认证方式使用一个ASP服务器端文件和一个Visual Basic组件所提供的方法,验证来访者所提供的用户ID和密码是否是数据库的成员。这个文件提供了可重用代码来完成安全检查,但这就意味着这个文件需要被包含在每一页的开头,才能保证这一页不会被未经过认证的用户打开。在每一页包含这个文件给管理员配置不需要安全保护的页带来了麻烦。

  在ASP .NET中实现认证是很容易的,因为基于cookie的认证通过将站点的文档存放在某一个特定的文件夹实现了对文档的保护。当用户企图访问这个受保护的文档时,.NET框架将自动判断用户是否经过了认证。如果用户未被认证,.NET框架会把这个未经认证的请求重定向到某一个特定的HTML表单,让用户输入认证信息,并提交这个表单。如果用户得到了认证,.NET框架会产生一个可以辨别用户的cookie,并重定向到原先的请求页面。.NET框架还提供了一些类来帮助我们与认证过程交互和访问保存在cookie中的认证信息。

  我们可以用Web站点的config.web文件来配置ASP .NET的认证体系。这个配置文件包含了一个用于指定认证方式的块、该块指明了HTML登陆表单的URL和密码的格式。图3是一个设置基于cookie的认证的config.web文件。

  Web站点上原来的那种安全认证方式为每一个访问者唯一确立了一个对话ID。因为已经生成了这个ID,所以我们在移植认证过程不要改动现存的代码。ASP .NET认证机制将把未经认证的用户重定向到登陆页,让用户提交信用证。一旦提交了登陆页,用户ID和密码将被确认,还将产生一个会话ID。

  实现ASP .NET认证体系只要修改原来的登陆页面的两个地方。我们没有向客户的cookie写入会话的关键字,而是使用了ASP .NET认证cookie,将它的值设为会话的关键字。然后通过CookieAuthentication 类的RedirectFromLoginPage方法将用户重新引导到原先的请求页。在接下来的请求中,将通过.NET框架的HttpContext.User类来访问会话ID。图4显示的是修改后的登录认证检查。

  除了提供了一种更安全、更容易实现的安全认证体制外,ASP .NET认证体制还可以区别对待认证过的和未经认证的内容。因为保护的范围是由config.web文件中的目录结构决定的,所以只要把内容移出受保护的文件夹就可以取消对内容的保护了。

  为了让认证机制能发挥作用,所有需要认证才可以访问的文件的扩展名应改为.aspx(ASP.NET文件的扩展名)。正如你将在下面看到的,这是一个相对简单的过程。
 

来源:https://www.tulaoshi.com/n/20160129/1508913.html

延伸阅读
建立Web站点是很困难的。尽管一些核心技术如H T M L很容易掌握,但开发者仍会犯很多错误。这主要是由于开发者经验的欠缺,进程的混乱以及不现实的时间安排所导致的。因为时间的限制和缺乏经验,开发者经常走极端,不考虑后继步骤,而企图一步到位,直接实现。例如,一些Web专业人员直接从外观开始建设站点。用可视化设计工具试着...
.NET之ASP Web Form快速入门 编写第一个Web Form页面 ASP.NET的Web Form页面是纯文本文件,以.aspx为文件扩展名。 当客户端浏览器请求一个.aspx文件时,ASP.NET将解析并编译目标文件为.NET架构类,接着这个类动态处理进来的请求。注意:.aspx文件只在第一次访问时被编译,随后的再次请求将重用这个类实例。这与JSP的处理方式大致相同。呵...
.NET之ASP Web Application快速入门(2) Application的生存期 一个ASP.NET application创建于服务器第一次被请求时,在那之前不会有ASP.NET代码在执行。接受第一次请求后,一个HttpApplication实例池被创建,并激活了Application_OnStart事件。HttpApplication实例处理这个请求及随后发生的请求,直到最后的实例退出,接着就触发Applicati...
标签: Web开发
最近,许多Web站点开始在开发人员社区当中引起关注。这些站点独特之处在于,它们更像是桌面应用程序而非Web应用程序。当您与它们交互时,它们可以快速在浏览器显示无穷的信息而又无需重新加载页面。 例如,在Google Maps站点(http://maps.google.com/),您可以单击地图,缩小或者放大,然后随心所欲地来回移动鼠标。浏览器会连续地...
标签: Java JAVA基础
  JSP是由Sun微系统公司于1999年6月推出的一项技术,是基于JavaServlet以及整个java体系的Web开发技术,利用这一技术可以建立先进、安全和跨平台的动态网站。 JSP 与ASP非常相似。两者都提供在HTML 代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。在ASP或JSP 环境下,HTML代码主要负责描述信息的显示样式,而程序代码则用来...

经验教程

889

收藏

12
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部