我只是 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"]
并从控制器中访问它。
这是一个可行的解决方案,还是我走错了路?
谢谢!