(5)- IdentityServer 4 - 增加自定义用户ID,供自定义权限验证使用

本文前提说明

  • 本文在文章:(4)- IdentityServer 4 权限搭建(.Net Core 3.1)的基础上构建

在验证端增加自定义数据(用户编号UID)

  1. 修改自定义验证(ResourceOwnerValidator.cs),增加UID(写死了为了测试,测试通过改用真实ID)的代码如下:
修改代码 - 增加自定义编号UID
  1. 验证端新增类(CustomProfileService.cs),继承IProfileService
    编辑内容如下:
using IdentityServer4.Models;
using IdentityServer4.Services;
using System.Linq;
using System.Threading.Tasks;

namespace AuthenticationApp
{
    public class CustomProfileService : IProfileService
    {
        public virtual Task GetProfileDataAsync(ProfileDataRequestContext context)
        {
            // 在自定义验证:ResourceOwnerValidator中填写的claims的内容
            var claims = context.Subject.Claims.ToList();

            // 设置返回的claims的值
            context.IssuedClaims = claims.ToList();

            return Task.CompletedTask;
        }

        public virtual Task IsActiveAsync(IsActiveContext context)
        {
            context.IsActive = true;

            return Task.CompletedTask;
        }
    }
}
  1. 在StartUp.cs中添加引用
StartUp.cs中添加引用
  1. 重新编译启动授权端,使用Postman工具调试
返回的数据中可见前面自定义数据

在Api项目中使用授权端自定义的UID

  • 在全局自定义验证类中增加使用UID代码,调试截图如下
  • 获取到用户编号后,该如何使用可自行拓展
全局自定义验证中增加使用UID代码

你可能感兴趣的:((5)- IdentityServer 4 - 增加自定义用户ID,供自定义权限验证使用)