小编Ada*_*sev的帖子

ASP.NET MVC AuthorizeAttribute将值传递给ActionMethod?

我只是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"]并从控制器访问它.

这是一个可行的解决方案,还是我走错了路?

谢谢!

c# asp.net asp.net-mvc actionmethod authorize-attribute

6
推荐指数
1
解决办法
1333
查看次数