求教一个wcf不同客户端的连接和服务端的用户的识别有关问题

求教一个wcf不同客户端的连接和服务端的用户的识别有关问题

求教一个wcf不同客户端的连接和服务端的用户的识别问题
如两个客户端连接到主机后显示连接客户端数为2,假设为2个用户分别输入用户名和密码登录两个不同的班级,进行增删改查操作。假设客户端为winform或wpf方式。
我的问题是除了记录用户名和密码外还要记录这个操作用户是哪个班级的,应该怎样保存这个信息。因为用户在查询信息的时候需要用到操作员在对应的班级信息,才能返回这个用户的所需的信息。

请教这是怎么实现的

------解决思路----------------------
引用:
如两个客户端连接到主机后显示连接客户端数为2,假设为2个用户分别输入用户名和密码登录两个不同的班级,进行增删改查操作。假设客户端为winform或wpf方式。
我的问题是除了记录用户名和密码外还要记录这个操作用户是哪个班级的,应该怎样保存这个信息。因为用户在查询信息的时候需要用到操作员在对应的班级信息,才能返回这个用户的所需的信息。

请教这是怎么实现的


现在的c/s软件基本上有两类。

一类是假的c/s软件,它实际上是客户端程序通过远程c/s数据库的客户端驱动,“随意地”去增删改查服务器上的数据库。这样,你的客户端程序在程序内存中保存着用户登录名,你的程序自然就随意拼凑成任意的sql语句去查询修改删除数据。你不用自己研发服务器系统,你只要编写一个客户端程序就完毕了。

第二类是传统的真正的c/s软件,它是真正的“终端-主机”程序进化到“客户-服务”程序的产物(这种程序诞生于上世纪90年代中期)。它的特点,就在于服务器是一个独立的业务逻辑控制服务层,各个客户端根本不知道(也不关心)这个服务背后的具体架构机制。这个服务器系统程序必须是你自己研发的。对于这种系统,那么在服务器端就要有一个专门的“登录”功能服务、有专门的SessionID分配给会话,以后的各种c/s通讯都要提供这个SessionID。你看到的可编程业务服务器系统,例如asp.net之类的,都是如此的开发模式。
------解决思路----------------------
引用:
数据库
 用户表:用户id,用户名,所属单位
                   1        张三       1班
                   2        李四       2班
                   3        周六       1班
                  。。。。。。。。。
学生表:学号,姓名,课程,成绩,班级
                 1        王        语文    59        1班
                 2       高        语文    61         1班
                 3      刘         数学     80        1班
                 4      何         语文     90        2班
。。。。。。。。。。。。。。。。。。

张三登录客户端后,只能查看张三所在班级(1班)的学生信息。请教在wcf下,张三所在的班级是否记录在客户端,在查询学生表的时候直接作为查询的参数,还是记录在服务端的session。请教有经验的老手,一般的方案怎样实现。


基本上,没有4、5年的训练,可能你也只能关心这些数据库表。

过几年你就会明白,真正的专业的应用系统,它不断地一代代地集成着各种先进技术,服务功能的界面不是什么“数据库”表,而是实体数据。这些数据跟数据库表没有必然的一对一对应关系。比如说你发表了一个微博,那么就是向服务器端提交了一个叫做“微博”的实体对象,至于这个微博修改了涉及5个基础资料表、12个统计表、4个远程SOA系统,你并不用关心它。所以一个软件系统的服务端程序设计师,至少需要对上百个这种概念进行充分设计和不断重构。

设计一个服务器软件,你将来就会知道,不是拿着二、三十个数据库表在那里“相面”,而是从客户端跟服务器之间的通讯时许涉及出发,做到信令少、速度快、容易使用。站在业务的角度出发,才能避免陷入低俗、找不到创意的尴尬。
------解决思路----------------------
1:登陆信息,绝对不应该记录在客户端。这样非常容易被人伪造登陆信息对服务进行攻击
2:最简单的方式,启用你WCF的
    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
优点:直接可以使用ASP.NET的Session来存储用户登录信息
缺点:你的WCF将只能跑在ASP.NET 的host上
3:自己baidu/google,关键字:WCF session,同时排除第2点说的方式。