请教一下各位高手

lornk 2005-04-16 05:16:41
我想做一个关于数据库存取的程序。
要求:
1。支持C/S和B/S。
2。客户端永远也不能知道数据库的结构和访问数据库。
3。客户端可以得到数据库的相关数据及操作,但是要根据身份操作有权限的部份。而这些只能在服务端实现,不能在客户端验证客户。

以上的难点只是在C/S方面,因为这来就是asp的默认权限,B/S根本不用处理也行,只不过如果这样处理后,把B/S弄成C/S,可以把生成HTML的任务和读取数据的任务为开来,也是一件很好的事。

请教一下高手,有什么好建议和有什么好文章或教程可以参考。
...全文
127 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
lcdon 2005-04-16
  • 打赏
  • 举报
回复
manonroad大哥,Remoting能用身份验证吗?我想了一下,可能是对Remoting不太熟的原因,对身份验证并没有一个好的解决方案。像访问数据库这样的东西,只能是做服务端激活的方式,如果用singlecall保持不了状态,就算用singleton我也不知怎么验证一个用户的登录和过期呢?
将就点 2005-04-16
  • 打赏
  • 举报
回复
楼主说的是2层架构存在的问题。做成3层的吧。做个中间层,将客户端操作命令和客户端权限之类的信息传递到服务器,服务器验证通过执行操作即可,楼上的方案完全可行,Remoting和COM或COM+也行啊
gyf19 2005-04-16
  • 打赏
  • 举报
回复
用ASP.NET 和 Web Services 开发吧!!
manonroad 2005-04-16
  • 打赏
  • 举报
回复
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端.
athossmth 2005-04-16
  • 打赏
  • 举报
回复
需要使用O/R Mapping的技术,才能让C/S的客户端看不到数据。
B/S则无所谓了,反正本来就看不到。
lornk 2005-04-16
  • 打赏
  • 举报
回复
////
客户端永远也不能知道数据库的结构和访问数据库。
///////
理论上是:不管是谁在用都不行,数据库的操作只能服务器本机有权限,其它的机器的任何用户,可以通过服务端执行命令的方式修改。服务端给客户的只是一个地址和登录用户有多少函数可用。

如果说,用户通过微软的漏洞入侵了服务机的话,那是没关系的,主要的是,用户不能基于我们写的这个小程序而形成数据库的安全问题。
lornk 2005-04-16
  • 打赏
  • 举报
回复
谢谢Yamir2004兄,但返回的是什么的类型呢?字符串吗?还是用数据库直接返回一个记录集?如果是字符串,把一个字符串转变成一个记录集,这其中还涉及了各种数据类型的转换,可不简单呀。如果是返回一个记录集的话,首先客户端不能链到数据库,如果能的话,就在里面集成了用户名和密码,不安全,只能由服务器返回了。按我的理解,就方便的就是生成一个XML流把它传到客户端,客户端再把这个XML写进一个DATASET,读里面的数据,修改时先请求一个XSLT构架,填充里面的内容,再以XML上传到服务器,其间的性能如何?且还要建立一个TCP的传输和转换协义,也不太方便,还有什么更方便的方法吗?
syeerzy 2005-04-16
  • 打赏
  • 举报
回复
客户端永远也不能知道数据库的结构和访问数据库。


......

那要看谁在用了
lcdon 2005-04-16
  • 打赏
  • 举报
回复
建议看一看Remoting的教程
Yamir2004 2005-04-16
  • 打赏
  • 举报
回复
在设计sql模板语句的时候需要根据功能需求考虑周密一些
Yamir2004 2005-04-16
  • 打赏
  • 举报
回复
我原来做过的C/S结构程序,楼主可以参考一下
底层做两个类
一个是数据库访问类
一个是sql语句的模版类,按权限要求成几部分,并且做sql模版参数替换(正则表达式实现)和参数过滤
客户端界面产生一个sql语句编号请求及相关参数给服务端
服务端验证权限通过后,执行相应的sql模板语句,然后将结果返回给客户端
这样所有的操作都是在服务端实现的,客户端只是做一个请求而已

110,502

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧