因此,这是我的情况:我有一个.net框架黑盒,要求用户角色(我给它提供用户名,并返回权限集合)。
在我的旧.net框架asp.net mvc应用程序中,我使用Windows身份验证,然后覆盖global.asax.cs中的两个事件,并使用包含权限的我自己的主体(以及在构造函数中采用枚举值的authorizeAttribute实现)
我首先检查用户是否已通过身份验证,以及是否存在具有其权限的cookie(已加密)。如果没有(或已过期),我将从数据库中创建新的主体和加载权限,然后将其加密并保存到Cookie中。
然后,第二个事件获取cookie(如果存在),并从中获取我的自定义主体,该主体包含权限,并将其用作当前主体。
然后,如果有权限,那么Authorize属性将仅查询当前的httpcontext,并且我不必每次都调用数据库来获取用户的权限,因为这很耗时(网络很慢)。
现在,我面临着如何在asp.net核心3中实现此挑战。到目前为止,我所读的所有内容都是关于如何复制“每次需要检查某项权限时都需要权限”的方法我不想做的事。
还有另一种方法可以让我做类似于.net框架的asp.net方法(在cookie过期并且用户正在浏览并将其保存在某个地方然后使用它们时,每n分钟加载一次数据),但是在ASP.NET CORE中?