ASP.NET MVC 3 中的行级权限或 facebook 风格的隐私?

发布于 2024-12-13 21:54:59 字数 354 浏览 2 评论 0原文

我正在开发一个需要自定义精细安全/隐私设置的项目。基本上我需要能够根据执行查询的用户来限制对数据的访问。很容易,对吧?不过,这里有一些问题......

  1. 用户必须存储在用户表中。此应用程序不可接受创建 Windows 用户帐户、SQL Server 用户或 SQL Server 角色。
  2. 安全标准必须由任意数量的来源来定义,即用户的位置、薪资等级、专业等。

现在我们通过生成 SQL“where”子句并将其附加到每个查询的末尾来实现这一点在它被执行之前。这限制了我们利用实体框架等新技术,并且还带来了其他限制和性能问题。

任何帮助或想法将不胜感激。如果需要额外说明,请告诉我。

谢谢!贾森

I am working on a project that requires custom granular security/privacy settings. Basically I need to be able to restrict access to data based on the user executing the query. Easy enough, right? Here a couple of gotchyas though..

  1. The users must be stored in a users table. Creating Windows user accounts, SQL server users or SQL server roles is unacceptable for this application.
  2. The security criteria has to be defined by any number of sources, i.e. a user's location, pay grade, specialty, etc..

Right now we're implementing this by generating a SQL "where" clause and appending it to the end of every query before it's executed. This restricts us from being able to leverage newer technologies such as Entity Framework and also carries with it its own other limitations and performance problems.

Any help or ideas would be greatly appreciated. Please let me know if additional clarification is needed.

Thanks! Jason

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

末骤雨初歇 2024-12-20 21:54:59

您仍然可以使用实体框架。使用 EF 有多种方法可以实现此目的:

  • 创建一个注入 WHERE 子句的自定义包装提供程序,例如 this

  • 仅公开包含 Where() 之前的数据的 IQueryable(但要注意关系)

  • 如果当前用户无权访问实体构造函数(可能不是一个好主意)

You can still use Entity Framework. There are a couple of ways to do this with EF:

  • Create a custom wrapping provider that injects WHERE clauses, like this.

  • Only expose IQueryables that contain pre-Where()'d data (but beware of relations)

  • Throw an exception in the entity ctor if the current user doesn't have access to it (may not be a good idea)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文