请教一下各位高手
日期:2007-08-27 荐:
请教一下各位高手我想做一个关于数据库存取的程序。要求:1。支持C/S和B/S。2。客户端永远也不能知道数据库的结构和访问数据库。3。客户端可以得到数据库的相关数据及操作,但是要根据身份操作有权限的部份。而这些只能在服务端实现,不能在客户端验证客户。以上的难点只是在C/S方面,因为这来就是asp的默认权限,B/S根本不用处理也行,只不过如果这样处理后,把B/S弄成C/S,可以把生成HTML的任务和读取数据的任务为开来,也是一件很好的事。请教一下高手,有什么好建议和有什么好文章或教程可以参考。我原来做过的C/S结构程序,楼主可以参考一下底层做两个类一个是数据库访问类一个是sql语句的模版类,按权限要求成几部分,并且做sql模版参数替换(正则表达式实现)和参数过滤客户端界面产生一个sql语句编号请求及相关参数给服务端服务端验证权限通过后,执行相应的sql模板语句,然后将结果返回给客户端这样所有的操作都是在服务端实现的,客户端只是做一个请求而已在设计sql模板语句的时候需要根据功能需求考虑周密一些建议看一看Remoting的教程客户端永远也不能知道数据库的结构和访问数据库。......那要看谁在用了谢谢Yamir2004兄,但返回的是什么的类型呢?字符串吗?还是用数据库直接返回一个记录集?如果是字符串,把一个字符串转变成一个记录集,这其中还涉及了各种数据类型的转换,可不简单呀。如果是返回一个记录集的话,首先客户端不能链到数据库,如果能的话,就在里面集成了用户名和密码,不安全,只能由服务器返回了。按我的理解,就方便的就是生成一个XML流把它传到客户端,客户端再把这个XML写进一个DATASET,读里面的数据,修改时先请求一个XSLT构架,填充里面的内容,再以XML上传到服务器,其间的性能如何?且还要建立一个TCP的传输和转换协义,也不太方便,还有什么更方便的方法吗?////客户端永远也不能知道数据库的结构和访问数据库。///////理论上是:不管是谁在用都不行,数据库的操作只能服务器本机有权限,其它的机器的任何用户,可以通过服务端执行命令的方式修改。服务端给客户的只是一个地址和登录用户有多少函数可用。如果说,用户通过微软的漏洞入侵了服务机的话,那是没关系的,主要的是,用户不能基于我们写的这个小程序而形成数据库的安全问题。需要使用O/R Mapping的技术,才能让C/S的客户端看不到数据。B/S则无所谓了,反正本来就看不到。1. 三层结构(client, server, dataBase).client和server之间用remoting技术,来传送DataSet.2. 在Client和Server solution里包括共同的Library project(DataSet, Command class等,因为它们在Client和server端均要用到.)3. server端的功能就是接受client发送过来的Command, 然后相应的命令和执行stored procedure, 组装Dataset, 发送到client端.用ASP.NET 和>>Web Services 开发吧!!楼主说的是2层架构存在的问题。做成3层的吧。做个中间层,将客户端操作命令和客户端权限之类的信息传递到服务器,服务器验证通过执行操作即可,楼上的方案完全可行,Remoting和COM或COM+也行啊manonroad大哥,Remoting能用身份验证吗?我想了一下,可能是对Remoting不太熟的原因,对身份验证并没有一个好的解决方案。像访问数据库这样的东西,只能是做服务端激活的方式,如果用singlecall保持不了状态,就算用singleton我也不知怎么验证一个用户的登录和过期呢?
标签: