【发布时间】: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