彩票走势图

基于ASP.NET AJAX框架实现表单验证编程原理

转帖|其它|编辑:郝浩|2010-09-29 11:43:11.000|阅读 579 次

概述:AuthenticationService对象仅提供了两个公用方法:login()和logout(),分别用来实现用户登录和注销,还暴露了几个常用的属性。下面让我们逐一介绍。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

  AuthenticationService对象仅提供了两个公用方法:login()和logout(),分别用来实现用户登录和注销,还暴露了几个常用的属性。下面让我们逐一介绍。

  (一) 方法

  1、login()方法

  这个方法负责将用户名字和密码传递到服务器端进行验证,并返回是否通过验证的信息;必要的话,还可以设置相应的客户端Cookie等信息。这个方法的完整形式如下所示:
Sys.Services.AuthenticationService.login(userName, password, isPersistent, customInfo, redirectUrl,
inCompletedCallback, failedCallback, userContext);
下面详细列出了上面各个参数的含义。

  参数:作用
userName:将被认证的用户名字。
password:将被认证的用户密码。
isPersistent:如果取值为true,则表示要永久保存跨浏览器会话的认证信息;默认值为null。
customInfo: 保留字段(暂不使用),必须赋值为null。
redirectUrl: 验证成功之后要重定向到的URL;若取值null,则不会发生重定向。默认值为null。
loginCompletedCallback: 调用认证服务完成之后的回调函数。注意,不管用户是否通过了服务器端认证,只要认证过程中没有出现诸如超时、异常等问题,都会调用该回调函数。然后,在该回调函数内可以得到用户是否通过了此次验证的信息。默认为null。
failedCallback: 调用认证服务失败之后的回调函数。导致失败的原因可能是网络连接超时、或是认证服务内部抛出异常等。若是由于用户提供的用户名和密码不正确而不能通过验证,将不会导致调用认证服务失败,该回调函数将不会被调用。默认为null。
userContext: 随本次异步用户认证调用发送至服务器端的用户上下文对象。

  其中,loginCompletedCallback和failedCallback是两个重要的回调函数地址参数。

  ①、loginCompletedCallback参数所指定的回调函数的完整形式:
function onLoginCompleted(validCredentials, userContext, methodName)
 validCredentials:一个布尔值,表示用户是否成功通过了验证;
 userContext:在调用login()方法时传递的用户上下文对象;
 methodName:调用方法的方法名。

  ②、failedCallback参数所指定的回调函数的完整形式如下:
function onAuthenticationFailed(error, userContext, methodName)
 error:导致认证服务失败的异常对象;
 userContext:在调用login()方法时传递的用户上下文对象;
 methodName:调用方法的方法名。

  2、logout()方

  logout()方法用来注销当前已经登录的用户。这个方法的完整形式如下所示:
Sys.Services.AuthenticationService.logout( redirectUrl, logoutCompletedCallback, failedCallback, userContext );
其中各个参数的含义如下表2所示。

  logout()方法各参数含义

  参数:作用
redirectUrl: 注销成功之后重定向到的URL,若该参数值为null,则将自动重定向至当前页面。默认值为null。
logoutCompletedCallback: 注销用户完成之后的回调函数。
failedCallback :注销用户失败之后的回调函数。导致失败的原因可能是网络连接超时、或是认证服务内部抛出异常等。
userContext: 随本次异步用户认证调用发送至服务器端的用户上下文对象。

  注意,在此所列出的四个参数均是可选的。对于logoutCompletedCallback和failedCallback参数,如果为AuthenticationService对象设置了默认值的话,也可以省略。

  注销成功之后的回调函数,即logoutCompletedCallback参数所指定的函数的完整的形式如下所示:
function onLogoutCompleted(result, userContext, methodName)

  说明:
1. result:目前并没有使用到该参数,始终为null。
2. userContext:在调用logout()方法时传递的用户上下文对象。
3. methodName:调用方法的方法名。

  注销用户失败之后的回调函数,即failedCallback参数所指定的函数形式:
function onAuthenticationFailed(error, userContext, methodName)

  说明:
1. error:导致认证服务失败的异常对象。
2. userContext:在调用login()方法时传递的用户上下文对象。
3. methodName:调用方法的方法名。

  (二) 公共属性
AuthenticationService对象还提供了如表3所示几个经常用到的属性。

  AuthenticationService对象的常用属性

  属性:作用
defaultLoginCompletedCallback: 获取或设定默认的调用认证服务完成之后的回调函数。
defaultLogoutCompletedCallback: 获取或设定默认的注销用户完成之后的回调函数。
defaultFailedCallback: 获取或设定默认的登录/注销失败之后的回调函数。
isLoggedIn: 获取一个布尔值的属性,表示当前用户是否已经登录。
timeout: 获取或设定认证请求的超时时间,单位为毫秒。

  (三) 简单举例

  1、设置AuthenticationService对象的timeout属性:
Sys.Services.AuthenticationService.set_timeout(3000);

  2、若是预先设定了defaultLoginCompletedCallback、defaultLogoutCompletedCallback和 defaultFailedCallback属性,那么在调用AuthenticationService对象的login()和logout()方法时,则可省去专门指定各回调函数的操作。例如,如下代码就设定了AuthenticationService的这3个属性,并定义了相应的默认回调函数:

  Sys.Services.AuthenticationService.set_defaultLoginCompletedCallback(onLoginCompleted);
Sys.Services.AuthenticationService.set_defaultLogoutCompletedCallback(onLogoutCompleted);
Sys.Services.AuthenticationService.set_defaultFailedCallback(onAuthenticationFailed);
function onLoginCompleted(validCredentials, userContext, methodName) {
//…………
}
function onLogoutCompleted(result, userContext, methodName) {
//…………
}
function onAuthenticationFailed(error, userContext, methodName) {
//…………
}

  随后,我们只需使用如下代码进行用户登录/注销就可以了。其中userName表示用户名,password表示密码:
Sys.Services.AuthenticationService.login(userName, password, true);
//…………
Sys.Services.AuthenticationService.logout();
显然,这种编程思路清晰更有助于实现模块化,更值得推荐。

  3、下面这个函数调用logout方法简单地清除表单中的认证cookie信息。
function OnClickLogout()
{
Sys.Services.AuthenticationService.logout(null, null, null, null);
}

  4、下面这个函数调用认证服务的login方法校验用户输入的证书信息。如果认证成功,认证服务将产生一个表单认证相关cookie。

  function OnClickLogin(){
//设置默认的回调函数
SetDefaultLoginCompletedCallBack();
SetDefaultLogoutCompletedCallBack();
SetDefaultFailedCallBack();
//调用认证服务认证用户输入的证书信息
Sys.Services.AuthenticationService.login(username.value,
password.value, false,null,null,null,null,"User Context");
}

  总结

  在本篇中,我们仅罗列了ASP.NET AJAX框架的客户端认证服务中一些重要的公共成员及含义解释。并且,我们已经认识到进行以ASP.NET AJAX框架客户端中心型Web开发应当主动使用这一功能。


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:博客转载

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP