.Net 中用C/S模式来开发(分不在多,有解则灵!)现打算实现类似如下的功能:请一定要接着往下看哦~~
服务器端拥有全部的功能如功能A(打印)、功能B(截图)、...
服务器端可以决定客户端可以使用的功能,打个比方:
第一天,服务器端说:“客户端A,你表现不错,我允许你使用打印这个功能”。那么客户端A就具有了打印功能;第二天,服务器端又说:“客户端A,这一阵子,你帮助了很多要打印的人的忙,为了鼓励你,现在允许你也可以使用截图功能”。那么客户端A就具有了这两个功能。第三天,服务器端生气了,“客户端A,你太不像话了,让你截图,你居然截一些YY的图片,现在取消你截图的功能”。那么客户端A现在又只有一个打印功能了。不知道,这个比方,大家有没有看明白?我的意思就是:服务器端可以指派权限给客户端,客户端只有在拥有了这个权限后,才能执行相关事件。快看完了,坚持住~~类似于这种功能,大家有没有碰到过?该怎么实现才能在性能上,效果上都能比较良好?我现在头绪比较乱,想到一个是:
用一个数据库来存放各个客户端所具有的权限代号。
客户端程序中拥有执行所有功能的模块,这些功能代码已经写死在程序里。然后在每个调用前加上查找,即在数据库中取出来的用户的权限代号集合中查找该功能代号,如果有,则允许执行。否则不执行。可是这样做,第一感觉,客户端过于臃肿,因为有些功能是不能实现的。第二、每次都要查找数据库,太耗费性能。不管能不能解答,您都花费了时间在阅读我这个问题上,因此真诚地表示感谢~~
服务器端拥有全部的功能如功能A(打印)、功能B(截图)、...
服务器端可以决定客户端可以使用的功能,打个比方:
第一天,服务器端说:“客户端A,你表现不错,我允许你使用打印这个功能”。那么客户端A就具有了打印功能;第二天,服务器端又说:“客户端A,这一阵子,你帮助了很多要打印的人的忙,为了鼓励你,现在允许你也可以使用截图功能”。那么客户端A就具有了这两个功能。第三天,服务器端生气了,“客户端A,你太不像话了,让你截图,你居然截一些YY的图片,现在取消你截图的功能”。那么客户端A现在又只有一个打印功能了。不知道,这个比方,大家有没有看明白?我的意思就是:服务器端可以指派权限给客户端,客户端只有在拥有了这个权限后,才能执行相关事件。快看完了,坚持住~~类似于这种功能,大家有没有碰到过?该怎么实现才能在性能上,效果上都能比较良好?我现在头绪比较乱,想到一个是:
用一个数据库来存放各个客户端所具有的权限代号。
客户端程序中拥有执行所有功能的模块,这些功能代码已经写死在程序里。然后在每个调用前加上查找,即在数据库中取出来的用户的权限代号集合中查找该功能代号,如果有,则允许执行。否则不执行。可是这样做,第一感觉,客户端过于臃肿,因为有些功能是不能实现的。第二、每次都要查找数据库,太耗费性能。不管能不能解答,您都花费了时间在阅读我这个问题上,因此真诚地表示感谢~~
SOA
:)
既然是WS控制。那肯定是主动访问服务。 那就不需要数据库了吧。每次运行从WS加载一次权限就可以了。
PS:楼主写帖真有意思
我的目标是 ----> ^_^
服务器上有 Printer.dll,IPrinter.dll,PrtSC.dll,IPrtSC.dll ......这些组件,加上一个服务器宿主
客户端上有 IPrinter.dll,IPrtSC.dll......这些组件,加上客户端程序客户端和服务器推荐使用Remoting或者现在的WCF(这个我暂且不清楚)通信,获取客户端相应的权限,可以是存在数据库中的,有了权限就可以进行相应的组件调用了,也就可以实现相应的功能......
如果是人为操作的话就是一个权限问题了,你可以在直接设置用户可以访问哪些模块
把所有模块做成一个Tree,可以访问的打一个勾.不想让他访问就把勾去掉好了.
你的一句“客户端可以给服务端指派权限”,听得好悬,呵呵
本来客户端读取模块和数据就是从服务端来的,所以只要把权限去掉,自然没有了
没有你想的那么复杂
现在微软推出了wcf,可以传二进制,也可以是文本,基本上把微软以前的几种通讯的东西,包括asp.net webservice,remoting,wse等全部整合在一起了
如果lz选型客户端到服务器端的通讯组件,推荐wcf给你。
比如管理员可以在服务器上选择客户端A能够执行哪些功能。
这些功能都只是在客户端执行,不是到服务器上执行。可是怎么处理这个权限模块好呢?我是做成winform的。用webservices?
如果按照某些朋友说布尔值,或tree什么的,那就是说,客户端已经拥有所有功能模块喽,然后根据权限来选择哪个可以执行或不可以执行。这样客户端不是很累赘
客户端只是传递参数过去,服务器端返回权限列表。
客户端根据权限列表再去服务器上下载相应的模块和功能(应该只有一次,先到本地去比对,没有再去下载)。
采用provider的模式可以实现这个设计。
原来这个是provider模式呀,不是很懂,先去了解下。不过对你所采用的方法,挺感兴趣
netramework是不建议用com之类的东西,这个在它出现的第一天就有了定调了
remoting只适合netframework平台,而且很难调试,并且无法跨网通讯,没发现微软对remoting的支持不是很多吗?
我是做C/S架构的,天天在跟这个功能打交道基本原理是,在数据库建立一个用户权限数据库,保存各个用户的权限。
然后在用户登录时,系统从数据库中查找用户具用的权限,能调用哪些功能系统的管理员可以为用户配置不同的权限。