您的位置:首页 > 编程语言 > ASP

新瓶旧酒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

[源码下载]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐