如何将会话中的Azure身份验证声明存储在.net Core中



我的应用程序-Net Core MVC 3.1正在使用Microsoft.Identity.Web和Microsoft.Identiity.Web.UI进行Microsoft身份验证,我收到声明。我有基于策略的授权,每次点击控制器时,都会检查DB中的用户角色,并提供登陆权限。但我想实现以下情况-

1>如果我可以将用户从Microsoft身份验证页面重定向到一个特定的控制器,在那里我可以读取声明并添加额外的声明,并可以将其存储到会话中,该会话可以在整个应用程序中使用,并且可以在每次授权时保存不必要的数据库命中。但经过身份验证后,我的应用程序正在重定向到用户试图访问的url,即重定向url。

2>如果上述步骤不可能,我们可以使用自定义中间件将身份验证后的声明存储到任何地方都可以访问的会话中吗。但问题是,自定义中间件每次都会被调用,每次都会检查数据库来存储会话。其次,HTTPConetext会话在每个新请求上都会被清除。我怎么能有自己的会话,而不应该被清除?

您可以在此处探索使用ASP.NET核心分布式缓存:https://dzone.com/articles/aspnet-core-session-storage-strategies

最新更新