技术开发 频道

基于ASP.NET AJAX框架实现表单验证编程(实践篇)

一、 引言

    在上篇中,我们讨论了ASP.NET AJAX框架的客户端认证服务静态类AuthenticationService中主要的公共成员及其使用注意事项。在本篇中,让我们通过编写一个具体的示例程序来学习如何在基于ASP.NET AJAX框架客户端中心型的Web开发中配置与使用AuthenticationService对象。

二、 必要的服务器配置

   为了有效地处理例如用户名和密码等用户认证信息并校验这些信息。服务器端为我们提供了基础性框架。例如,ASP.NET AJAX框架中的表单认证特征就支持我们通过一个简单的登录表单来实现对于用户名及登录口令的认证。如果应用程序验证了用户请求,那么,服务器端将构建并发出一个特定“证件”—其中包含了在随后的请求中用于重建用户身份和密钥信息。

   AuthenticationService类提供了一个JavaScript代理类,我们可以从客户端脚本中调用之以实现与服务器方认证服务的通讯。

   【注意】实际开发中,我们也可以通过AuthenticationServiceManager类来创建自己的服务器端认证服务。也即是创建一个支持从客户端JavaScript脚本中进行调用的WebService。在此我们暂不讨论之。

    我们再次强调,为了操作本文示例,读者应该先学习有关ASP.NET 2.0使用Membership思想实现用户管理方面的知识。
下面,我们来讨论具体的配置。

三、 启动认证服务

(一)首先启动ASP.NET 2.0内置的身份认证服务 。

    因为ASP.NET AJAX框架的客户端认证服务基于标准的服务器端ASP.NET 2.0用户认证管理机制;所以,我们需要先通过web.config文件来启动ASP.NET 2.0本身的认证服务支持。

   打开web.config文件,找到并设置如下内容:
<system.web.extensions> 
<scripting>
<webServices>
<authenticationService enabled="true" />
</webServices>
</scripting>
</system.web.extensions>
    通过上面的设置之后,我们即可在客户端脚本中直接访问ASP.NET 2.0的身份认证服务。

    因为我们需要使用表单认证模式,所以接下来,还要在网站根目录下的web.config文件中进行如下配置:
<authentication mode="Forms"> 
<forms name="auth" loginUrl="~/MyAjaxAuthenticationService.aspx" timeout="30" protection="All" cookieless="UseCookies" path="/"></forms>
</authentication>
   至止,即为我们的示例Web站点启动了身份认证应用程序服务,且设置认证的类型为“表单”认证方式。其中的参数loginUrl设置了Web站点的初始登录页面,即“~/MyAjaxAuthenticationService.aspx”。

   【注意】必须启用浏览器端的cookies功能,因为认证服务使用cookie来临时存储在随后的请求中重建用户身份的认证信息。

四、 配置对于Membership数据库的访问

    默认情况下,ASP.NET 2.0使用一个SQL Server Express数据库来存储成员身份认证信息。与此相关的machine.config配置文件(默认位置为C:\ WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config,你可以使用任何文本编辑器查看与修改之,但须小心)中的数据库连接串应该具有类似如下内容(默认内容就是如此):

<connectionStrings> 
<add name="LocalSqlServer" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" />
</connectionStrings>
    当然,如果我们想使用自定义的数据库来存放用户信息,那么我们可以在本站点的web.config文件中<connectionStrings/>节添加自己的数据库连接串。为了简化起见,我们将使用默认数据库。
0
相关文章