【发布时间】:2010-05-14 01:49:27
【问题描述】:
我只是 ASP.NET MVC 的新手,不知道如何以“正确的方式”完成某项任务。
本质上,我将登录的 userId 存储在 HttpContext.User.Identity 中,并编写了 EnhancedAuthorizeAttribute 来执行一些自定义授权。
在重写的OnAuthorization 方法中,我的域模型命中数据库以确保当前用户ID 可以访问传入的routeValue“BatchCode”。原型是:
ReviewGroup GetReviewGroupFromBatchCode(string batchCode);
如果用户无法访问 ReviewGroup 并且 OnAuthorization 拒绝访问,它将返回 null。
现在,我知道装饰操作方法只有在 OnAuthorization 通过时才会执行,但我不想再次访问数据库以再次获取 ReviewGroup。
我正在考虑将 ReviewGroup 存储在 HttpContext.Items["reviewGroup"] 中,并目前从控制器访问它。
这是一个可行的解决方案,还是我走错了路?
谢谢!
【问题讨论】:
标签: c# asp.net asp.net-mvc authorize-attribute actionmethod