问题标签 [iidentity]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
14193 浏览

asp.net - 什么是 Thread.CurrentPrincipal,它有什么作用?

Thread.CurrentPrincipal用来做什么的?它对应用程序的身份验证和授权有何帮助?是否有任何文章或资源可以帮助解释它的作用?

0 投票
1 回答
433 浏览

.net - 从 ClaimsPrincipal.Current 检索时,Thread.CurrentPrincipal 被重置/ClaimsPrincipal 丢失

我有一个运行 .Net 4.5.2 的 WinForms 应用程序。

登录时,我创建了一个带有一堆声明的 ClaimsPrincipal。我保存到 Thread.CurrentPrincipal。在同一个登录过程中,ClaimsPrincipal 工作正常。

应用程序初始化后,当用户单击控件时,我尝试从 ClaimsPrincipal.Current 中检索 ClaimsPrincipal。当我这样做时,它是一个 GenericPrincipal 并且它失去了它的所有声明。

我究竟做错了什么?

0 投票
0 回答
433 浏览

asp.net-core - 在 .Net Core 中使用 Claims Identity

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

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

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

0 投票
1 回答
1771 浏览

asp.net - User.Identity.GetUserId() 在控制器操作中总是返回 null

我需要在控制器中使用当前登录的用户 ID。它总是返回 null。我已经登录了。这是我的代码。

我尝试添加参考

我还尝试添加声明

当我尝试检索声明时,它也会给出 null 。

任何帮助,将不胜感激。

评论中要求的附加信息:

这是aspnetuser提供的正常登录。

Request.IsAuthenticated返回真。

此处添加了声明。

饼干

0 投票
1 回答
86 浏览

asp.net-mvc - Iidentity IPrincipal 中的购物车

我正在为我的客户开发一个订单管理系统。在这个系统中,我决定使用 IPrincipal 而不是 IIdentity。

我一直在考虑应该在哪里存储客户的购物车数据。最后我决定存储在 Cookie 中。

我的第一个问题是:我应该在哪里存储客户购物车数据?在数据库中还是在 cookie 中?

我认为在 cookie 中会更快、更有用。我需要你对这个问题的想法。

我试图用 cookie 存储。我可以将购物车数据添加到 cookie,但是当我尝试将另一个产品添加到购物车时,购物车数据正在重置。我想将购物车数据存储在列表中。

我的代码:

1-我的CustomPrincipal:

2- CustomPrincipalSerializeModel - 用于将自定义信息序列化到 FormsAuthenticationTicket 对象中的 userdata 字段中。

3- 我的登录方法 - 使用自定义信息设置 cookie:

4- Global.asax.cs 读取 cookie 并替换 HttpContext.User 对象,这是通过覆盖 PostAuthenticateRequest 来完成的

5-我的购物车虚拟机

6-加入购物车方法

0 投票
1 回答
1956 浏览

serialization - 无法反序列化 ClaimsPrincipal

鉴于我创建了一个声明身份,然后创建了一个主体。然后我序列化主体。检查 json 字符串,我可以确认“角色”声明以及身份都存在。

反序列化它会导致一个具有空属性的对象。和.Claims丢失.Identity

问题:如何确保对象被正确反序列化?