【问题标题】:EF DB Interceptor accessing context ( like current user and so on )EF DB拦截器访问上下文(如当前用户等)
【发布时间】:2016-07-13 08:39:26
【问题描述】:

我编写了IDbCommandTreeInterceptor 的实现来根据上下文修改查询。

在我的特殊情况下,我需要在拦截器中访问用户对象,以确定用户可以对已查询的表执行什么操作。

实现行级安全是我的愿景。在我的 DbInterceptor 中,我获取了用户对象,检查角色并过滤掉用户无权访问的行。

现在我的问题。

我阅读了一些文章并了解到DbInterceptors 可能在另一个线程中运行(与HttpContext.Current 存在的位置不同)。

如何实施/组织这种事情?我想访问上下文(用户请求什么等等)。

我正在使用OData WebAPI

【问题讨论】:

  • 在数据访问代码中访问 HttpContext.Current 不是一个好习惯。也许你可以注入这些信息。

标签: c# entity-framework asp.net-web-api entity-framework-6


【解决方案1】:

只为他人。不要那样做。曾经。如果你有这种问题,这意味着你有糟糕的架构。 DbInterceptors 是完全孤立的,你应该做点别的。

我通过在DbContext 之上添加抽象层来解决我的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多