【发布时间】:2010-06-05 06:56:45
【问题描述】:
应该如何处理您可能需要按一组用户进行过滤的情况。 这是场景。
我在公司担任管理员角色。我应该能够看到属于我的所有数据以及我可以控制的所有其他用户。
然而,一个普通的老用户应该只能访问他们自己的数据。
如果您正在编写常规 sql 语句,那么您可以为每个用户以及他们也有权访问的用户创建一个安全表,但我不确定如何在 OO 和 ORM 世界中处理这种情况。
有人在使用 ORM 的 Web 应用程序中处理过这种情况吗? 很想听听你的想法!
【问题讨论】:
-
无论您是否使用 ORM,您的数据库设计都应该相同。也就是说,您需要发布一个表结构,然后有人会帮助您使用 nHibernate 编写正确的 c# 代码以返回所需的查询。
-
@Spencer Ruport。我不同意,因为我使用 ORM 生成我的数据库模式。 C# 代码应该是相同的,并且数据库设计应该是针对特定 ORM 的最佳设计。
-
@Paco - 所以你优化工具而不是应用程序性能?也许这是一个意见问题,但这对我来说似乎倒退了。
-
@Spencer。是的,这是向后的方法。我不针对工具或应用程序性能进行优化,而是针对最容易编写和最容易阅读的代码(并且尽可能多地独立于工具)。我使用分析器测量应用程序性能并更改太慢的部分(少于代码的 1%)。性能优化有时会降低代码的灵活性。我只在测量速度太慢而无法保持代码尽可能灵活时才优化性能。
标签: c# asp.net security nhibernate orm