我在我的MVC项目上使用owin认证。 我有导航属性的订单和用户(ApplicationUser)表。EF代码第一次拦截OWIN User.Identity到所有查询
每次我querieng订单授权的用户,我需要检查用户:
public class TestController : Controller
{
public ActionResult Index()
{
using (var ctx = new TestContext())
{
ctx.Orders.Where(o => o.User == User.Identity.Name).Where(...).ToList();
}
}
}
如果我忘了什么地方检查,用户将获得所有订单。
我想是这样或者一些更好的方式来做到这一点:
[InterceptQuery]
public Expression<Func<Orders, Boolean>> FilterUser(){
return o => o.Where(o => o.User == HttpContext.User.Identity.Name);
}
,当我quering Orders表,它会永远闪光。
为什么你不这样做过滤器的存储库?所以你只写一次,每次调用都会执行。 – 2014-12-05 13:02:00
你是什么意思?我没有存储库,只有上下文 – 2014-12-05 13:16:18