2

在我们当前的系统(.net 4.5)中,为了在整个应用程序中处理用户身份验证,我们创建了自己的对象IIdentityIPrincipal对象。因此,在每个请求中,我们解密 cookie 中的一个属性(存储在登录时),并使用它检查缓存中的用户对象(它也为我们提供了客户端对象)。如果用户在缓存中,那么我们将HttpContextBase.User和设置Thread.CurrentPrincipal为我们自己的IPrincipal. 如果用户不在缓存中,那么我们从数据库中获取它们并设置上面的内容。

这非常有效,因为我们有BaseController2 个属性,一个用于当前用户,一个用于当前客户端。这些可以通过转换User.Identity为我们自己的IIdentity.

我们现在希望将我们的应用程序移至 .netcore,但鉴于我们似乎无法复制它,我们不确定如何实现与上述相同的效果。我们目前正在使用带有 ASP 身份的 cookie 中间件(此处显示),我们正在设置一些声明(id、名称等),但我们不确定如何或在哪里检查缓存并在每个请求上设置一些属性。

4

0 回答 0