|
|
1
3
实际上,WebService方法(在其他一些答案中提到)意味着将NHibernate及其逻辑移动到web服务。然后,WebService使用WebService的方法公开应用程序可用的db功能。 数据库实际上只有一个用户,即WebService使用的用户,如果您想让应用程序用户拥有不同的db权限,您可以从WebService层将其抽象出来 最后,WinForms应用程序只知道通过WebService的方法请求数据的WebService的位置,您可以在这两个端点之间应用任何所需的安全措施。 对于离线功能来说,它可以归结为一种安全的方法来将数据持久化到本地存储,并通过WebService提供一种同步方法 实际上,我使用了一个与DB通信的Web服务和一个只与Web服务通信的WinForm应用程序(.NET Compact Framework),在没有蜂窝网络覆盖的情况下,它会序列化对存储卡的更改(数据并不重要,因此对于我的情况,在没有采取措施的情况下,会采取模糊/淫秽的安全措施) 按要求用一个小例子更新(我确实觉得奇怪,尽管要求提供一个关于这个的例子)
所以你得到了这个(实际的实现是不同的):
我们将dao行为抽象出来,或者直接使用nhsession,作为webmethod公开。
现在从WinForm应用程序开始,您需要做的就是
有些事情你必须注意:
|
|
|
2
5
首先,让不受信任的用户连接到数据库通常不是一个好主意。很多事情都会出错。将web服务置于两者之间。 如果你一定要这么做,那么即使他们得到了用户名和密码也不重要。限制他们在数据库中的权限,以便他们只能执行一些具有内置安全检查的存储过程。
|
|
|
3
1
用户可以随时跟踪其网络流量并查看用户/密码(您可以使用编码,但我认为它仍然不能100%确定)。 我认为应该在用户和数据库之间添加一个webservice,每个用户都有一个唯一的id。 |
|
|
4
1
这就是为什么数据库桌面应用程序很糟糕。没有好的方法来切割它。最好的办法是使用存储过程或web服务。基本上,另一层可以被锁定并控制对数据库的访问。 |
|
|
Nico Pizzo · 子查询上的nhibernate联接 8 年前 |
|
|
YMC · 无法在Nhb 4中构建只有特定字段可供选择的2个表联接 8 年前 |
|
|
Stu · 具有特定类型的字符串外键的NHibernate映射 8 年前 |
|
|
Zout · 为Hibernate的HiLo算法管理的列生成ID 8 年前 |