使用ASP.NET AJAX的Profile Service

开发 后端
本文介绍使用ASP.NET AJAX的Profile Service,我们不需要手动调用Sys.Services.ProfileService.set_path方法,只需要在ScriptManager中指定即可。

在ScriptManager中指定Profile Service的Path

在ASP.NET AJAX的客户端脚本中,如果没有使用Sys.Services.ProfileService.set_path方法来指定一个提供Profile Service的地址,就会使用默认的地址,它会使ASP.NET AJAX的Profile Service使用程序集中特定的类。一般来说,我们不需要手动调用Sys.Services.ProfileService.set_path方法,只需要在ScriptManager中指定即可。如下:

  1. <asp:ScriptManager ID="ScriptManager1" runat="server" ScriptMode="Debug"> 
  2. <ProfileService Path="CustomProfileService.asmx" /> 
  3. </asp:ScriptManager> 


实现自己的Web Service类

指定了自己的Web Service类,自然就要实现自己的类了。事实上,我们要实现的就是3个方法。就这个方面来说,ASP.NET AJAX的Profile Service使用的默认的Web Service类Microsoft.Web.Profile.ProfileService是我们绝佳的参考。因此,我们在这里分析一下这些方法,对于我们的自定义工作是非常有帮助的。

可能需要注意的一点是,我们在实现这些方法时,从理论上来讲参数类型不用完全和 Microsoft.Web.Profile.ProfileService中的方法完全相同。ASP.NET AJAX的能够根据参数的类型尽可能地将获得的JSON字符串转换成需要的类型。不过事实上,似乎 Microsoft.Web.Profile.ProfileService里那些方法的参数选择已经是非常合理的。另外,由于客户端Profile Service代码不太容易修改(事实上客户端也不是不能扩展,最极端的情况,不就是我们自己实现一个ProfileService吗?),为了保持返回的JSON字符串能够被正确处理,这些方法的返回值一般来说可以不变。

GetAllPropertiesForCurrentUser方法

这个方法的作用是获得当前用户所有的Profile信息,它没有输入的参数,返回的JSON字符串形式如下:

  1. {  
  2. 'ZipCode' : ...,  
  3. 'Address.City' : ...,  
  4. 'Address.State' : ...  

它通过GroupName.ProfileName的形式来表示Profile Group,Group中的每一个Profile需要分别列出,而“...”则表示对应Profile值的JSON字符串。

在Microsoft.Web.Profile.ProfileService里,这个方法的代码如下:

  1. [WebMethod]  
  2. public IDictionary<string, object> GetAllPropertiesForCurrentUser()  
  3. {  
  4. ProfileService.CheckProfileServicesEnabled();  
  5. return ProfileService.GetProfile(HttpContext.Current, null);  

GetPropertiesForCurrentUser方法

这个方法的作用是获得当前用户指定的Profile信息,它的输入JSON字符串形式如下:
['ZipCode', 'Address.City', 'Address.State']

它的返回值的JSON字符串和GetAllPropertiesForCurrentUser相同,就不再赘述了。以上介绍了使用ASP.NET AJAX的Profile Service。

【编辑推荐】

  1. ASP.NET中的WebRequestExecutor
  2. IIS6的ASP.NET ISAPI请求处理过程
  3. ASP.NET中的备份
  4. 浅谈ASP.NET ISAPI
  5. ASP.NET的IIS ISAPI extension
责任编辑:佚名 来源: IT168
相关推荐

2009-07-22 16:05:34

ASP.NET AJA

2009-07-22 16:11:43

ASP.NET AJA

2009-07-24 13:41:15

ASP.NET AJA

2009-07-22 16:25:41

ASP.NET AJA

2009-07-22 16:17:39

ASP.NET AJA

2009-07-30 12:19:32

ASP.NET中使用A

2009-01-08 10:20:56

AutoCompletAjaxASP.NET

2009-01-16 13:17:16

AjaxASP.NET.NET

2009-07-27 17:32:39

Web ServiceASP.NET

2009-07-21 14:37:13

Profile Pro优化ASP.NET 2

2009-07-20 17:39:36

WCF服务ASP.NET AJA

2009-07-20 13:14:25

安装ASP.NET A

2009-07-29 13:50:26

UpdatePanelASP.NET

2009-07-20 10:16:13

配置ASP.NET A

2009-07-28 09:02:32

asp.net aja

2009-07-22 15:58:52

ASP.NET AJA

2009-07-31 13:24:43

ASP.NET AJA

2009-07-21 17:27:12

UpdateProgrASP.NET AJA

2009-02-20 09:19:56

AJAXASP.NETWeb Service

2009-07-24 13:08:40

AJAX技术ASP.NET
点赞
收藏

51CTO技术栈公众号