ABP vNext 扩展 CurrentUser,自定义Claim声明

2024-02-16 00:50

本文主要是介绍ABP vNext 扩展 CurrentUser,自定义Claim声明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ABP内置Users表,我们可以对其字段进行扩展,辅助进行更详细的数据记录

ICurrentUser 是主要的服务,用于获取有关当前活动的用户信息.

	以下是 ICurrentUser 接口的基本属性:1. IsAuthenticated 如果当前用户已登录(已认证),则返回 true. 如果用户尚未登录,则 Id 和 UserName2. 将返回 null. 	Id (Guid?): 当前用户的Id,如果用户未登录,返回 null. 	UserName (string):3. 当前用户的用户名称. 如果用户未登录,返回 null. 	TenantId (Guid?): 当前用户的租户Id. 对于多租户4. 应用程序很有用. 如果当前用户未分配给租户,返回 null. 	Email (string): 当前用户的电子邮件地址.5. 如果当前用户尚未登录或未设置电子邮件地址,返回 null. 	EmailVerified (bool):6. 如果当前用户的电子邮件地址已经过验证,返回 true. 	PhoneNumber (string): 当前用户的电话号码.7. 如果当前用户尚未登录或未设置电话号码,返回 null. 	PhoneNumberVerified (bool):8. 如果当前用户的电话号码已经过验证,返回 true. 	Roles (string[]): 当前用户的角色.9. 返回当前用户角色名称的字符串数组.

如何将扩展字段加入ICurrentUser :

找到Domain类库下的 IdentityServerDataSeedContributor.cs,增加想要扩展的字段别名

在这里插入图片描述
在Application类库创建MyUserClaimsPrincipalFactory工厂
在这里插入图片描述

namespace Creating.Drgs.Hospital.IdentityServer
{[Volo.Abp.DependencyInjection.Dependency(ReplaceServices = true)][ExposeServices(typeof(AbpUserClaimsPrincipalFactory))] // 替换旧的AbpUserClaimsPrincipalFactorypublic class MyUserClaimsPrincipalFactory : AbpUserClaimsPrincipalFactory, IScopedDependency{public MyUserClaimsPrincipalFactory(){}public override async Task<ClaimsPrincipal> CreateAsync(Volo.Abp.Identity.IdentityUser user){//获取当前登录人信息var principal = await base.CreateAsync(user);var identityPrincipal = principal.Identities.First();//扩展信息identityPrincipal.AddClaim(new Claim("doctor",  user.Name));return principal;}}
}
FindClaim: 获取给定名称的声明,如果未找到返回 null
FindClaims: 获取具有给定名称的所有声明(允许具有相同名称的多个声明值).
FindClaimValue: 获取具有给定名称的声明的值,如果未找到返回 null. 它有一个泛型重载将值强制转换为特定类型.
CurrentUser.FindClaimValue("doctor")  //读取扩展信息

ABP Framework 中文文档

这篇关于ABP vNext 扩展 CurrentUser,自定义Claim声明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/713034

相关文章

SpringBoot 自定义消息转换器使用详解

《SpringBoot自定义消息转换器使用详解》本文详细介绍了SpringBoot消息转换器的知识,并通过案例操作演示了如何进行自定义消息转换器的定制开发和使用,感兴趣的朋友一起看看吧... 目录一、前言二、SpringBoot 内容协商介绍2.1 什么是内容协商2.2 内容协商机制深入理解2.2.1 内容

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

自定义类型:结构体(续)

目录 一. 结构体的内存对齐 1.1 为什么存在内存对齐? 1.2 修改默认对齐数 二. 结构体传参 三. 结构体实现位段 一. 结构体的内存对齐 在前面的文章里我们已经讲过一部分的内存对齐的知识,并举出了两个例子,我们再举出两个例子继续说明: struct S3{double a;int b;char c;};int mian(){printf("%zd\n",s

Spring框架5 - 容器的扩展功能 (ApplicationContext)

private static ApplicationContext applicationContext;static {applicationContext = new ClassPathXmlApplicationContext("bean.xml");} BeanFactory的功能扩展类ApplicationContext进行深度的分析。ApplicationConext与 BeanF

Spring 源码解读:自定义实现Bean定义的注册与解析

引言 在Spring框架中,Bean的注册与解析是整个依赖注入流程的核心步骤。通过Bean定义,Spring容器知道如何创建、配置和管理每个Bean实例。本篇文章将通过实现一个简化版的Bean定义注册与解析机制,帮助你理解Spring框架背后的设计逻辑。我们还将对比Spring中的BeanDefinition和BeanDefinitionRegistry,以全面掌握Bean注册和解析的核心原理。

Oracle type (自定义类型的使用)

oracle - type   type定义: oracle中自定义数据类型 oracle中有基本的数据类型,如number,varchar2,date,numeric,float....但有时候我们需要特殊的格式, 如将name定义为(firstname,lastname)的形式,我们想把这个作为一个表的一列看待,这时候就要我们自己定义一个数据类型 格式 :create or repla

HTML5自定义属性对象Dataset

原文转自HTML5自定义属性对象Dataset简介 一、html5 自定义属性介绍 之前翻译的“你必须知道的28个HTML5特征、窍门和技术”一文中对于HTML5中自定义合法属性data-已经做过些介绍,就是在HTML5中我们可以使用data-前缀设置我们需要的自定义属性,来进行一些数据的存放,例如我们要在一个文字按钮上存放相对应的id: <a href="javascript:" d

PHP7扩展开发之数组处理

前言 这次,我们将演示如何在PHP扩展中如何对数组进行处理。要实现的PHP代码如下: <?phpfunction array_concat ($arr, $prefix) {foreach($arr as $key => $val) {if (isset($prefix[$key]) && is_string($val) && is_string($prefix[$key])) {$arr[