我只是ASP.NET MVC的新手,我不确定如何以"正确的方式"完成某项任务.
本质上,我将登录的userId存储在HttpContext.User.Identity中,并编写了一个EnhancedAuthorizeAttribute来执行一些自定义授权.
在overriden OnAuthorization方法中,我的域模型命中数据库以确保当前用户id可以访问传入的routeValue"BatchCode".原型是:
ReviewGroup GetReviewGroupFromBatchCode(string batchCode);
Run Code Online (Sandbox Code Playgroud)
如果用户无法访问ReviewGroup,则它将返回null,然后OnAuthorization拒绝访问.
现在,我知道装饰动作方法只有在OnAuthorization通过时才会执行,但我不想再次访问数据库以再次获取ReviewGroup.
我正在考虑将ReviewGroup存储在控制器中HttpContext.Items["reviewGroup"]并从控制器访问它.
这是一个可行的解决方案,还是我走错了路?
谢谢!