首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > CAD教程 >

请高人指教 VS2010+Silverlight+WCF RIA SERVICES实现登录功能的有关问题

2012-08-10 
请高人指教 VS2010+Silverlight+WCF RIA SERVICES实现登录功能的问题我是一个新人,向所有高人学习请教:)环

请高人指教 VS2010+Silverlight+WCF RIA SERVICES实现登录功能的问题
我是一个新人,向所有高人学习请教:)

环境:
1.Ms Sql2008中建立了一张Users表,其中包含UserID UserName Password和Role字段;
  UserID为主键,用于登录时输入的用户ID;
  UserName用于存放UserID对应的中文名,主要是用于在进入主页后将值赋给textblock控件,显示登录人员的中文名;
  Role用于存放角色值 例如: 0为管理员,可以显示主页上的所有导航菜单(导航菜单是HyLinkButton);1为查询用户,只能显 
  示导航菜单中某几个,其他设为失效;
2.web服务端建立了ado.net实体数据模型和DomainServices;
3.login.xaml中放了两个textbox用于输入userID和password和一个button;

请教的问题:
  在silverlight客户端如何使用login.xaml中两个textbox的值和Users表中的UserID和password值比对,如果存在就将
  UserID对应的UserName和Role寸放在某个变量中或是独立存储中;

以上问题,个人思路是先在DomainServices.cs中添加一个public IQueryable<Users> GetUserIDAndUserPassword(int id,string pwd)方法,该方法体是 return this.ObjectContext.Users.Where(e=>e.UserID == id && e.password == pwd).FirstOrDefault(); 只返回Users表中符合条件的一条记录,然后在login.xaml.cs中的添加button_click事件,事件中调用GetUserIDAndUserPassword(int id,string pwd)方法,传入两个textbox的text值作为参数,然后判断是否有记录,如有记录就登录成功,并记录下该笔记录中的UserName和Role值,然后用判断Role的值,根据值显示相应的导航菜单。 button_click的具体代码不会实现,请高手指教,或是请高手指教更好的方法,但最好是使用Silverlight Ria Services实现的,不是wcf。

因刚刚开始学,以上描述逻辑可能高手们看不懂,呵呵...

[解决办法]
不要试着在Silverlight中去写一个带有访问数据库的函数。因为是异步的。网上有方法实现同步访问数据的方法,但很费事。
vb.net代码
Private Sub button_click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles button.Click
Dim query As EntityQuery(Of Users)

query = _
From c In DomainService.GetUsersQuery _
Where c.UserID = 输入的用户ID AndAlso c.Password = 输入的密码 _
Select c
DomainService.Load(query, AddressOf DataLoadedCallback, Nothing)
End Sub



Public Sub DataLoadedCallback(ByVal loadOperation As LoadOperation(Of Users))
For Each DataBase In loadOperation.Entities
‘登录正确
Exit For
Next
End Sub

热点排行