gpt4 book ai didi

c# - ASP.NET MVC AuthorizeAttribute 将值传递给 Action 方法?

转载 作者:太空狗 更新时间:2023-10-29 21:55:54 24 4
gpt4 key购买 nike

我只是 ASP.NET MVC 的新手,不确定如何以“正确的方式”完成某项任务。

基本上,我将登录的 userId 存储在 HttpContext.User.Identity 中,并编写了一个 EnhancedAuthorizeAttribute 来执行一些自定义授权。

在覆盖的 OnAuthorization 方法中,我的域模型访问数据库以确保当前用户 ID 可以访问传入的路由值“BatchCode”。原型(prototype)是:

ReviewGroup GetReviewGroupFromBatchCode(string batchCode);

如果用户无法访问 ReviewGroup 并且 OnAuthorization 拒绝访问,它将返回 null。

现在,我知道修饰的操作方法只会在 OnAuthorization 通过时执行,但我不想再次访问数据库以再次获取 ReviewGroup。

我正在考虑将 ReviewGroup 存储在 HttpContext.Items["reviewGroup"] 中,并在此时从 Controller 访问它。

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

谢谢!

最佳答案

HttpContext.Items 仅在请求期间有效。如果想更长时间的坚持,应该放在

a) session - 好

b) 简介 - 看不到优势

c) cookie - 不推荐

d) 每次都访问数据库 - 应该没问题

存储在filterContext.RouteData.DataTokens中?

关于c# - ASP.NET MVC AuthorizeAttribute 将值传递给 Action 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2831389/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com