动态声明asp.net核心身份无数据库持久性

特里斯坦

我正在建立一个系统,用户登录后,他可以选择代表某个组织采取行动。向用户显示组织列表,然后他选择“模拟”哪个组织。

该信息是动态的,并且可以在登录之间更改,因此它不能保留在数据库中。

我发现我可以尝试向用户添加其他声明。我已经用它来存储一些信息。我是通过实现自己的UserClaimsPrincipalFactory来实现的,这非常简单,因为该信息保留在用户中并且不会更改。

要添加我的organizationId声明,我尝试了不同的方法,但均无效果。

将新声明直接添加到User.Identity不会将其保留在下一个请求中。

在下一个请求中,添加新声明并使用httpContext登录也将丢失。

我认为这都是因为我的UserClaimsPrincipalFactory。

我发现如何在会话中持久保存它的唯一方法是使用userManager。

await userManager.AddClaimAsync(user, new System.Security.Claims.Claim("organizationId", "myOrganization"));

但是,userManager将数据保存在db中,并且正如我在开始时所说的那样,该数据是动态的,并且在两次登录之间更改,它不能持久保存在db中。

我在以下主题上发现了这个问题:使用asp.net核心身份将数据存储在cookie中

但不幸的是,该解决方案将数据保存在数据库中。

这个问题与我的用例相似,但是没有答案。如何动态向用户添加声明?

考夫曼

我建议您使用自定义响应标头值或cookie来为给定会话保留该值。看看这个问题是否有帮助:如何添加自定义标题

添加一个与会话过期时间相同的cookie,如本文中所述:创建一个cookie希望获得帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Asp.net核心身份使用AspNetUserClaims还是AspNetRoleClaims?

ASP.NET Identity EF中的动态用户声明

植入asp.net核心身份角色

ASP.NET核心身份角色,声明和用户

IdentityServer4 + Asp.Net核心身份-将身份映射到应用程序数据库用户

部署后,Asp.Net核心“记住我”持久性cookie无法正常工作

asp.net核心身份声明与属性(效率观点)

从asp.net核心连接到Oracle数据库

Windows身份验证Asp.net核心2数据库角色授权

IdentityServer4 Asp.Net核心身份

ASP.NET核心身份-默认情况下,为什么数据库主键定义为“ nvarchar”而不是“ UniqueIdentifier”?

烧瓶登录(无数据库)

asp.net核心身份定制用户数据集

建模asp.net核心身份用户访问

ASP.NET核心身份和身份服务器

Asp.net核心SQLite数据库位置

Symfony 4登录访问:无数据持久性

在没有asp的情况下,创建新的cookie之前,请检查声明(电子邮件)。使用ASP.NET核心社交登录的核心身份存储

在ASP.NET会话数据库上使用延迟的持久性会产生影响吗?

如何将声明式(无数据库)和常规模式与Kong混合使用

asp.net核心身份cookie重播攻击

如何动态声明本地数据

持久性Java数据库

客户端特定声明身份 server4 使用 asp.net 核心身份

ASP.Net 核心身份验证提供程序

在动态 SQL 中为数据库邮件声明变量

Asp.net 核心身份验证

带有 asp.net 核心身份的 Microsoft 身份平台

提交按钮发送空白(无数据)数据 MVC ASP.Net