代码改变世界

Silverlight实现查询建模(五) 用户登录

2009-09-04 19:28  Amar-Yao  阅读(2752)  评论(6编辑  收藏  举报
  在群里经常有人问基于SL的用户登录怎么实现,下面我以XCenter的用户登录为例。本篇文章主要针对初级选手。
  先看看登录界面。这里要再一次感谢EasySL的作者,他不只给我们提供了一个类似EXT的美观的界面,而且给我们了一个很有参考价值的UI框架。
 
  帐套和公司这里就不说了,都是WCF后台取数据绑定DropDownList。SL是纯客户端技术因此没有类似Asp.Net的Session的东西。但我们可以通过在App.cs里建一个Dictionary类型的实例变量来模拟Session的结构。只要App实例存在,那么这个变量就一直存在。
  定义如下:
 
Code

   这里特意将这个变量起名为Session。来以假乱真
   点击"登录"按钮后执行的动作如下:
  
Code
  代码都很简单,抛去自己特有的逻辑看40-50行,40-47行主要逻辑就是将帐套和单位信息记录到我自己的数据结构中,ServiceContext主要就是和WCF通讯的客户端环境信息,ClientEnvironment其实就是这些信息的客户端快照,这是一个单例类,统一把客户端信息放这里便于使用。48-49行是实际的用户登录的WCF服务调用。回调函数如下:
 
Code

  7-8行就是当登录成功后记录用户信息到Session中。下面就是带动画场景跳转,这在以后文章中在描述。添加Session的Helper方法很简单就是判断Session键是否存在,不存在添加,存在则替换其值。
 
Code

  好了用户登录就这么简单。核心概念就是模拟Asp.Net中的Session结构。(这里概念不一样,请读者自己去理解)