Asp.Net Ajax 学习笔记17 使用Authentication Service

本文介绍两种确保ASP.NET AJAX调用WebService安全性的方法:FormsAuthentication模式和服务端验证用户登录状态;AuthenticationService模式及客户端设置用户登录,包括配置webConfig、实现登录与注销功能及相关回调函数。

为了保证Asp.Net Ajax调用的WebService的安全,保证不被任意调用有两种方法。

一、FormsAuthentication模式

这种模式是在WebService的方法中检查调用WebService的用户是否登陆。在调用方法里面首先就检测HttpContext.Current.User.Identity.IsAuthenticated是否为真,为真就是已授权用户否则就是未授权用户。这种方式需要使用FormsAuthentication.SetAuthCookie("Jeffrey Zhao", false)方法设置某个用户未已授权用户,当然也可以通过FormsAuthentication的框架来设置用户授权。通过FormsAuthentication.SignOut方法退出登陆。

二、AuthenticationService模式

这种模式是在客户端设置用户登陆。上一种方法是在服务端通过调用FormsAuthentication类的静态方法来设置用户登陆。我想也可以提供一个WebService来调用FormsAuthentication的静态方法来设置用户登陆。

要使用AuthenticationService模式,首先需要在webConfig中节点下 节点下节点下添加 节点。requireSSL表示此站点是否是使用Https协议来进行通信的。

用户身份验证(登陆):login方法
Sys.Services.AuthenticationService.login(
userName,//用户名
password, //密码
isPersistent, //是否生成持久Cookie
customInfo, //预留字段
redirectUrl, //登陆成功后跳转目标
loginCompletedCallback, //身份验证完成回调函数
failedCallback, //身份验证出错回调函数
userContext//用户任意指定的上下文对象
)

注意customInfo参数在此处没有任何意义,可能在下一版本有意义。不管用户名和密码是否匹配,只要进行了login并且没有出现网络异常或其他异常,都调用loginCompletedCallback回调函数。

登陆完成的回调函数

function loginCompletedCallback(
validCredentials, //身份验证是否成功
userContext, // 用户随意指定的上下文对象
methodName//即"….login"
)

validCredentials为true表名用户名和密码匹配,否则为用户名和密码不匹配。
失败的回调函数
function failedCallback(
error, // 错误对象
userContext, // 用户随意指定的上下文对象
methodName//即"….login"
)

注销功能:logout方法
Sys.Services.AuthenticationService.logout(
redirectUrl, // 注销后跳转页面
logoutCompletedCallback, //注销成功回调函数
failedCallback, //注销失败回调函数
userContext//用户任意指定的上下文对象
)

注销成功的回调函数

function logoutCompletedCallback(
result, // 预留参数
userContext, // 用户随意指定的上下文对象
methodName//即"….logout"
)

注销失败的回调函数

function failedCallback(
error, // 错误对象
userContext, // 用户随意指定的上下文对象
methodName//即"….logout"
)

timeout属性:用来设置或得到超时时间。

defaultLoginCompletedCallback属性:默认登陆成功的回调函数地址。当login函数指定了登陆成功的回调函数,以login函数的参数为准。

defaultLogoutCompletedCallback属性:默认注销成功的回调函数地址。

defaultFailedCallback属性:默认失败的回调函数地址。

在这里有几点需要说明:

  1. AuthenticationService使用的是默认的memberShipProvider的框架,如果不扩展AuthenticationService服务,需要使用asp.net 配置工具进行用户的配置。否则,login函数不知道如何去哪个数据库去验证用户。asp.net配置工具可以完全的接管用户的管理,需要在配置中创建用户并设置密码。
  2. 使用asp.net配置工具时,如果要把数据库作为mdf文件存放在App_Data文件夹中,必须把SqlExpress服务打开,否则创建不了数据库文件。如果不是用数据库文件,使用sql Server 2005远程连接,则可以不用打开SqlExpress服务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值