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

<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
document.write(baiduCproIFrame());--> 移植方法的选择

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

·将 站点和VisualBasic6.0的组件移植到ASP. NET和VisualBasic. NET

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

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

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

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

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

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

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

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

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

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

结合ASP. NET认证功能

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

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

原先使用的认证方式使用一个ASP服务器端文件和一个VisualBasic组件所提供的方法,验证来访者所提供的用户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文件的扩展名)。正如你将在下面看到的,这是一个相对简单的过程。
<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值