新瓶旧酒ASP.NET AJAX(10) - 客户端脚本编程(Sys.Services命名空间下的类)
2007-07-12 08:51
916 查看
[索引页]
[源码下载]
[align=center]新瓶旧酒ASP.NET AJAX(10) - 客户端脚本编程(Sys.Services命名空间下的类) [/align]
作者:webabcd
介绍
ASP.NET AJAX的Sys.Services.AuthenticationService类、Sys.Services.ProfileService类、Sys.Services.ProfileGroup类完美地和ASP.NET 2.0的Membership和Profile进行了集成
关键
1、Sys.Services.AuthenticationService类的login()方法
Sys.Services.AuthenticationService.login(userName, password, isPersistent, customInfo, redirectUrl, loginCompletedCallback, failedCallback, userContext);
·userName - 用户名
·password - 密码
·isPersistent - 是否跨浏览器保存认证信息(持久保留)
·customInfo - 保留字段,可能在将来使用
·redirectUrl - 登录成功后重定向到的URL
·loginCompletedCallback - 登录成功后的回调函数
·failedCallback - 登录失败后的回调函数
·userContext - 用户上下文
WebService中与其对应的方法 - public bool Login()
2、登录成功后的回调函数
function LoginComplete(bool validCredentials, userContext, methodName)
·validCredentials - 是否成功通过了验证
·userContext - 用户上下文
·methodName - 调用的方法名
3、Sys.Services.AuthenticationService类的logout()方法
Sys.Services.AuthenticationService.logout(redirectUrl, logoutCompletedCallback, failedCallback, userContext);
·redirectUrl - 注销成功后重定向到的URL
·logoutCompletedCallback - 注销成功后的回调函数
·failedCallback - 注销失败后的回调函数
·userContext - 用户上下文
WebService中与其对应的方法 - public void Logout()
4、注销成功后的回调函数
function LogoutComplete(result, userContext, methodName)
·result - 保留字段,可能在将来使用,始终为null
·userContext - 用户上下文
·methodName - 调用的方法名
5、Sys.Services.AuthenticationService类的属性
·defaultLoginCompletedCallback - 登录成功后的回调函数
·defaultLogoutCompletedCallback - 注销成功后的回调函数
·defaultFailedCallback - 登录或注销失败后的回调函数
·isLoggedIn - 当前用户是否已经登录
·path - authentication service路径
·timeout - 超时时间
6、Sys.Services.ProfileService类的load()方法
Sys.Services.ProfileService.load(propertyNames, loadCompletedCallback, failedCallback, userContext);
·propertyNames - Profile属性名称数组
·loadCompletedCallback - 成功后的回调函数
·failedCallback - 失败后的回调函数
·userContext - 用户上下文
WebService中与其对应的方法 - public IDictionary<string, object> GetAllPropertiesForCurrentUser()和public IDictionary<string, object> GetPropertiesForCurrentUser(string[] properties)
7、读取Profile成功后的回调函数
function onLoadCompleted(numProperties, userContext, methodName)
·numProperties - 返回的Profile属性个数
·userContext - 用户上下文
·methodName - 调用的方法名
8、Sys.Services.ProfileService类的save()方法
Sys.Services.ProfileService.load(propertyNames, saveCompletedCallback, failedCallback, userContext);
·propertyNames - Profile属性名称数组
·saveCompletedCallback - 成功后的回调函数
·failedCallback - 失败后的回调函数
·userContext - 用户上下文
·WebService中与其对应的方法 - public int SetPropertiesForCurrentUser(IDictionary<string, object> values)
9、保存Profile成功后的回调函数
onSaveCompleted(numProperties, userContext, methodName)
·numProperties - 保存的Profile属性个数
·userContext - 用户上下文
·methodName - 调用的方法名
10、Sys.Services.ProfileService类的属性
·读取或设置某个Profile的属性要这么写 - Sys.Services.ProfileService.properties.FieldName;
·defaultLoadCompletedCallback - 读取Profile成功后的回调函数
·defaultSaveCompletedCallback - 保存Profile成功后的回调函数
·defaultFailedCallback - 读取或保存Profile失败后的回调函数
·path - profile service路径
·timeout - 超时时间
11、Sys.Services.ProfileGroup类
·定义一个Profile组(同时需要在Web.config中定义)
12、登录或注销失败、读取或保存Profile失败后的回调函数
function onFailed(error, userContext, methodName)
·error - Sys.Net.WebServiceError对象
·userContext - 用户上下文
·methodName - 调用的方法名
13、如果要自动调用相关服务的话,则需要在web.config中的<configuration />节点下增加类似如下的配置
<webServices>
<authenticationService enabled="true" requireSSL="false"/>
<profileService enabled="true"
readAccessProperties="Age, Salary"
writeAccessProperties="Age, Salary"
/>
</webServices>
示例
AuthenticationService.asmx
<%@ WebService Language="C#" Class="AuthenticationService" %>
using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Web.Script.Services;
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService]
public class AuthenticationService : System.Web.Services.WebService
ProfileService.asmx
<%@ WebService Language="C#" Class="ProfileService" %>
using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Web.Script.Services;
using System.Collections.Generic;
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService]
public class ProfileService : System.Web.Services.WebService
public class Article
Sample.aspx
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
<div>
帐号:<input type="text" id="txtUserId" /></div>
<div>
密码:<input type="password" id="txtPassword" /></div>
<div>
</div>
<div>
<input type="button" id="btnLogin" value="登录" onclick="btnLogin_click()" />
<input type="button" id="btnLogout" value="注销" onclick="btnLogout_click()" /></div>
<div>
</div>
<div>
年龄:<input type="text" id="txtAge" /></div>
<div>
薪水:<input type="text" id="txtSalary" /></div>
<div>
<input type="button" id="btnSave" value="保存Profile" onclick="btnSave_click()" />
<input type="button" id="btnLoad" value="读取Profile" onclick="btnLoad_click()" />
</div>
<div>
</div>
<div id="result" />
</asp:Content>
ScriptManager的设置
<asp:ScriptManager ID="ScriptManager1" runat="server">
<AuthenticationService Path="~/ClientScripting/SysServices/AuthenticationService.asmx" />
<ProfileService Path="~/ClientScripting/SysServices/ProfileService.asmx" />
</asp:ScriptManager>
Web.config中的相关设置(在<system.web />节点下)
<profile enabled="true">
<properties>
<group name="Article">
<add name="Title" type="System.String" />
<add name="PublishTime" type="System.DateTime" />
</group>
</properties>
</profile>
运行结果
1、页面加载后
AuthenticationService path:/Web/ClientScripting/SysServices/AuthenticationService.asmx
AuthenticationService timeout:0
ProfileService path:ProfileService.asmx
ProfileService timeout:0
2、单击“登录”按钮
登录成功
用户上下文:用户上下文
调用的方法名为:Sys.Services.AuthenticationService.login
登录状态:true
3、单击“注销”按钮
弹出框,信息:成功调用Sys.Services.AuthenticationService.logout
4、单击“保存Profile”按钮
通过Profile保存的属性的数量为:4
5、单击“读取Profile”按钮
通过Profile读取的属性的数量为:3
Age:27
Article Title:Article Title From Server
Article PublishTime:2007-07-12
OK
[源码下载]
[源码下载]
[align=center]新瓶旧酒ASP.NET AJAX(10) - 客户端脚本编程(Sys.Services命名空间下的类) [/align]
作者:webabcd
介绍
ASP.NET AJAX的Sys.Services.AuthenticationService类、Sys.Services.ProfileService类、Sys.Services.ProfileGroup类完美地和ASP.NET 2.0的Membership和Profile进行了集成
关键
1、Sys.Services.AuthenticationService类的login()方法
Sys.Services.AuthenticationService.login(userName, password, isPersistent, customInfo, redirectUrl, loginCompletedCallback, failedCallback, userContext);
·userName - 用户名
·password - 密码
·isPersistent - 是否跨浏览器保存认证信息(持久保留)
·customInfo - 保留字段,可能在将来使用
·redirectUrl - 登录成功后重定向到的URL
·loginCompletedCallback - 登录成功后的回调函数
·failedCallback - 登录失败后的回调函数
·userContext - 用户上下文
WebService中与其对应的方法 - public bool Login()
2、登录成功后的回调函数
function LoginComplete(bool validCredentials, userContext, methodName)
·validCredentials - 是否成功通过了验证
·userContext - 用户上下文
·methodName - 调用的方法名
3、Sys.Services.AuthenticationService类的logout()方法
Sys.Services.AuthenticationService.logout(redirectUrl, logoutCompletedCallback, failedCallback, userContext);
·redirectUrl - 注销成功后重定向到的URL
·logoutCompletedCallback - 注销成功后的回调函数
·failedCallback - 注销失败后的回调函数
·userContext - 用户上下文
WebService中与其对应的方法 - public void Logout()
4、注销成功后的回调函数
function LogoutComplete(result, userContext, methodName)
·result - 保留字段,可能在将来使用,始终为null
·userContext - 用户上下文
·methodName - 调用的方法名
5、Sys.Services.AuthenticationService类的属性
·defaultLoginCompletedCallback - 登录成功后的回调函数
·defaultLogoutCompletedCallback - 注销成功后的回调函数
·defaultFailedCallback - 登录或注销失败后的回调函数
·isLoggedIn - 当前用户是否已经登录
·path - authentication service路径
·timeout - 超时时间
6、Sys.Services.ProfileService类的load()方法
Sys.Services.ProfileService.load(propertyNames, loadCompletedCallback, failedCallback, userContext);
·propertyNames - Profile属性名称数组
·loadCompletedCallback - 成功后的回调函数
·failedCallback - 失败后的回调函数
·userContext - 用户上下文
WebService中与其对应的方法 - public IDictionary<string, object> GetAllPropertiesForCurrentUser()和public IDictionary<string, object> GetPropertiesForCurrentUser(string[] properties)
7、读取Profile成功后的回调函数
function onLoadCompleted(numProperties, userContext, methodName)
·numProperties - 返回的Profile属性个数
·userContext - 用户上下文
·methodName - 调用的方法名
8、Sys.Services.ProfileService类的save()方法
Sys.Services.ProfileService.load(propertyNames, saveCompletedCallback, failedCallback, userContext);
·propertyNames - Profile属性名称数组
·saveCompletedCallback - 成功后的回调函数
·failedCallback - 失败后的回调函数
·userContext - 用户上下文
·WebService中与其对应的方法 - public int SetPropertiesForCurrentUser(IDictionary<string, object> values)
9、保存Profile成功后的回调函数
onSaveCompleted(numProperties, userContext, methodName)
·numProperties - 保存的Profile属性个数
·userContext - 用户上下文
·methodName - 调用的方法名
10、Sys.Services.ProfileService类的属性
·读取或设置某个Profile的属性要这么写 - Sys.Services.ProfileService.properties.FieldName;
·defaultLoadCompletedCallback - 读取Profile成功后的回调函数
·defaultSaveCompletedCallback - 保存Profile成功后的回调函数
·defaultFailedCallback - 读取或保存Profile失败后的回调函数
·path - profile service路径
·timeout - 超时时间
11、Sys.Services.ProfileGroup类
·定义一个Profile组(同时需要在Web.config中定义)
12、登录或注销失败、读取或保存Profile失败后的回调函数
function onFailed(error, userContext, methodName)
·error - Sys.Net.WebServiceError对象
·userContext - 用户上下文
·methodName - 调用的方法名
13、如果要自动调用相关服务的话,则需要在web.config中的<configuration />节点下增加类似如下的配置
<webServices>
<authenticationService enabled="true" requireSSL="false"/>
<profileService enabled="true"
readAccessProperties="Age, Salary"
writeAccessProperties="Age, Salary"
/>
</webServices>
示例
AuthenticationService.asmx
<%@ WebService Language="C#" Class="AuthenticationService" %>
using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Web.Script.Services;
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService]
public class AuthenticationService : System.Web.Services.WebService
ProfileService.asmx
<%@ WebService Language="C#" Class="ProfileService" %>
using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Web.Script.Services;
using System.Collections.Generic;
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService]
public class ProfileService : System.Web.Services.WebService
public class Article
Sample.aspx
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
<div>
帐号:<input type="text" id="txtUserId" /></div>
<div>
密码:<input type="password" id="txtPassword" /></div>
<div>
</div>
<div>
<input type="button" id="btnLogin" value="登录" onclick="btnLogin_click()" />
<input type="button" id="btnLogout" value="注销" onclick="btnLogout_click()" /></div>
<div>
</div>
<div>
年龄:<input type="text" id="txtAge" /></div>
<div>
薪水:<input type="text" id="txtSalary" /></div>
<div>
<input type="button" id="btnSave" value="保存Profile" onclick="btnSave_click()" />
<input type="button" id="btnLoad" value="读取Profile" onclick="btnLoad_click()" />
</div>
<div>
</div>
<div id="result" />
</asp:Content>
ScriptManager的设置
<asp:ScriptManager ID="ScriptManager1" runat="server">
<AuthenticationService Path="~/ClientScripting/SysServices/AuthenticationService.asmx" />
<ProfileService Path="~/ClientScripting/SysServices/ProfileService.asmx" />
</asp:ScriptManager>
Web.config中的相关设置(在<system.web />节点下)
<profile enabled="true">
<properties>
<group name="Article">
<add name="Title" type="System.String" />
<add name="PublishTime" type="System.DateTime" />
</group>
</properties>
</profile>
运行结果
1、页面加载后
AuthenticationService path:/Web/ClientScripting/SysServices/AuthenticationService.asmx
AuthenticationService timeout:0
ProfileService path:ProfileService.asmx
ProfileService timeout:0
2、单击“登录”按钮
登录成功
用户上下文:用户上下文
调用的方法名为:Sys.Services.AuthenticationService.login
登录状态:true
3、单击“注销”按钮
弹出框,信息:成功调用Sys.Services.AuthenticationService.logout
4、单击“保存Profile”按钮
通过Profile保存的属性的数量为:4
5、单击“读取Profile”按钮
通过Profile读取的属性的数量为:3
Age:27
Article Title:Article Title From Server
Article PublishTime:2007-07-12
OK
[源码下载]
相关文章推荐
- 新瓶旧酒ASP.NET AJAX(10) - 客户端脚本编程(Sys.Services命名空间下的类)
- 新瓶旧酒ASP.NET AJAX(10) - 客户端脚本编程(Sys.Services命名空间下的类)
- 新瓶旧酒ASP.NET AJAX(7) - 客户端脚本编程(Sys命名空间下的类)
- 新瓶旧酒ASP.NET AJAX(8) - 客户端脚本编程(Sys.Net命名空间下的WebRequestManager、WebRequest、WebRequestExecutor和XMLHttpExecutor)
- 新瓶旧酒ASP.NET AJAX(9) - 客户端脚本编程(Sys.Net命名空间下的WebServiceProxy、WebServiceError、Generated Proxy Classes以及调用WebService、PageMethod)
- 新瓶旧酒ASP.NET AJAX(5) - 客户端脚本编程(Sys.UI命名空间下的类和快捷方法)
- 新瓶旧酒ASP.NET AJAX(4) - 客户端脚本编程(JavaScript基本类型扩展 - JavaScript Base Type Extensions)javascript
- 系统地学习ASP.NET AJAX(5) - 客户端脚本编程(Sys.UI命名空间下的类和快捷方法)(转)
- ASP.NET AJAX(6) - 客户端脚本编程(Sys.WebForms命名空间下的类Sys.Serialization命名空间下的类)
- 新瓶旧酒ASP.NET AJAX(6) - 客户端脚本编程(Sys.WebForms命名空间下的类Sys.Serialization命名空间下的类)
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(10):服务器端和客户端数据类型的自动转换:以XML方式序列化数据、小结
- 新瓶旧酒ASP.NET AJAX(7) - 客户端脚本编程(Sys命名空间下的类)
- 新瓶旧酒ASP.NET AJAX(8) - 客户端脚本编程(Sys.Net命名空间下的WebRequestManager)
- 新瓶旧酒ASP.NET AJAX(5) - 客户端脚本编程(Sys.UI命名空间下的类和快捷方法)
- 新瓶旧酒ASP.NET AJAX(2) - 客户端脚本编程(命名空间、类、成员、接口、继承、枚举)
- 新瓶旧酒ASP.NET AJAX(8) - 客户端脚本编程(Sys.Net命名空间下的WebRequestManager、WebRequest、WebRequestExecutor和XMLHttpExecutor)
- 系统地学习ASP.NET AJAX(7) - 客户端脚本编程(Sys命名空间下的类)
- 新瓶旧酒ASP.NET AJAX(3) - 客户端脚本编程(调试和跟踪)
- 新瓶旧酒ASP.NET AJAX(2) - 客户端脚本编程(命名空间、类、成员、接口、继承、枚举)
- 系统地学习ASP.NET AJAX(8) - 客户端脚本编程(Sys.Net命名空间下的WebRequestManager、WebRequest、WebRequestExecutor和XMLHttpExecutor)