使用 Microsoft.AspNetCore.Authentication.JwtBearer 做验证的时候报错如下:

IDX10503: Signature validation failed. Keys tried: '[PII is hidden. For more details, see https://aka.ms/IdentityModel/PII.]'.

Exceptions caught:

'[PII is hidden. For more details, see https://aka.ms/IdentityModel/PII.]'.

token: '[PII is hidden. For more details, see https://aka.ms/IdentityModel/PII.]'.

访问链接后, 只看到下面这段话:

By default, we do not include any potential PII (personally identifiable information) in our >exceptions in order to be in compliance with GDPR.

If you need to see the full information present in exceptions, please set >IdentityModelEventSource.ShowPII to true.

IdentityModelEventSource.ShowPII = true;

意思是出于安全的原因, 不会直接显示用户个人信息, 也就是 PII, 但是可以通过启用 IdentityModelEventSource.ShowPII = true 来查看完整的异常信息.

这里有个官网的属性说明 IdentityModelEventSource.ShowPII Property

完了之后, 又是一个懵逼点, 这货在哪里设置? 代码应该写在哪里?

在 ASP.NET Core 项目中, 我们可以在 Startup.csConfigure() 中来直接配置该属性.

// ...
using Microsoft.IdentityModel.Logging namespace AspNetCoreShowPII
{
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
// ...
} public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
} IdentityModelEventSource.ShowPII = true; // here // ...
}
}
}

然后就可以在异常信息中看到更加完整的信息了, 方便开发调试...

PII is hidden.的更多相关文章

  1. ASP.NET Core中如何显示[PII is hidden]的隐藏信息

    有时候我们在ASP.NET Core项目运行时,发生在后台程序中的错误会将关键信息隐藏为[PII is hidden]这种占位符,如下所示: 而知道这些关键信息,有时候对我们调试程序是非常重要的.所以 ...

  2. IdentityServer4环境部署失败分析贴(一)

    前言: 在部署Idv4站点和其客户端在外网时,发现了许多问题,折腾了许久,翻看了许多代码,写个MD记录一下. 1.受保护站点提示错误: Unable to obtain configuration f ...

  3. .NET Core的JWT认证的学习

    今天学习下JWT,遇到了两个坑爹问题,这里记录下.在 ASP.NET Core 中,授权的设置方式有两种,可以使用角色,也可以使用策略,这里也将简单举例角色.策略的使用. JWT这里不做介绍,如果想了 ...

  4. .Net Core微服务化ABP之六——处理Authentication

    上篇中我们已经可以实现sso,并且为各个服务集成sso认证.本篇处理权限系统的角色问题,权限系统分两层,第一层为整体系统角色权限,区分app用户.后台用户.网站用户的接口权限,第二层为业务系统权限,对 ...

  5. HDU 2594 Simpsons’ Hidden Talents(KMP的Next数组应用)

    Simpsons’ Hidden Talents Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java ...

  6. Hidden Word

    Hidden Word time limit per test 2 seconds memory limit per test 256 megabytes input standard input o ...

  7. USACO 5.5 Hidden Password

    Hidden Password ACM South Eastern Europe -- 2003 Sometimes the programmers have very strange ways of ...

  8. 表单reset无法重置hidden的解决方案

    方法一:用text代替hidden,设置text隐藏 <input id="id" name="id" style="display: none ...

  9. overflow:hidden与margin:0 auto之间的冲突

    相对于父容器水平居中的代码margin:0 auto与overflow:hidden之间存在冲突.当这两个属性同时应用在一个DIV上时,在chrome浏览器中将无法居中.至于为啥我也不明白.

  10. 移动端浏览器body的overflow:hidden并没有什么作用

    今天突然遇到一个问题,使用li模拟select,但是碰到一个很尴尬的问题,给body加了overflow:hidden,但是body并没有禁止滚动条,滚动条依旧顺滑. <!DOCTYPE htm ...

随机推荐

  1. SQL统计数据之总结

    一.查询SQL SELECT t1.规则编号 AS 编码, t1.规则描述 AS 名称, SUM( CASE WHEN t3.DATA_SOURCES = '00' THEN 1 ELSE 0 END ...

  2. 如何快速的开发一个完整的iOS直播app(编解码原理)

    为什么要编码 编码就是压缩图像 手机摄像头采集的都是一帧一帧的图片,只要每秒采集了24帧,看起来就比较流畅,视频就是由一帧一帧的图片构成的,常见图片格式png,jpg,一张图片2M,一秒钟30帧,那么 ...

  3. Docker容器的原理、特征、基本架构、与应用场景

    什么是容器? 一句话概括容器:容器就是将软件打包成标准化单元,以用于开发.交付和部署. 容器镜像是轻量的.可执行的独立软件包 ,包含软件运行所需的所有内容:代码.运行时环境.系统工具.系统库和设置. ...

  4. 在线客服系统 QPS 突破 240/秒,连接数突破 4000,日请求数接近1000万次,.NET 多线程技术的高性能实践

    背景 我在业余时间开发了一款自己的独立产品:升讯威在线客服与营销系统.陆陆续续开发了几年,从一开始的偶有用户尝试,到如今的 QPS 突破 240 次/秒,连接数突破 4000,日请求数接近 1000 ...

  5. Java中的基本数据类型默认值扩展

    因为在很多情况下,如果要转换的数据为null,调用者期望的是返回默认值. 系统自动提供的默认值不能满足我们的需求,例如int的默认值为0,但是在sql查询中,如果查询失败,我们期望的是小于0的值,例如 ...

  6. Linux基础命令3:通过名称指定文件、创建文件目录

    描述Linux文件系统层次结构概念 /root(root的home目录)/home/username(其它普通用户的home目录)/bin, /usr/bin, /usr/local/bin命令存放处 ...

  7. 第3章 在C#中创建类型

    第3章 在C#中创建类型 3.1 类 复杂的类可能包含如下内容: 在 class ​关键字之前:类特性(Attribute​)和类修饰符.非嵌套的类修饰符有:public​.internal​.abs ...

  8. Romberg 数值积分算法+P3779 题解

    Romberg 算法 吊打 Simpson(?) 的且不玄学(没有什么十五倍)的数值积分算法. 缺点是过程复杂一点,但是只体现在证明上,代码很短. 铺垫算法 梯形求积公式 公式 \[\int _a^b ...

  9. RowCellMenuCustomizations 实现 Command 绑定

    给GridControl的行数据单元格添加菜单项,并通过Command绑定的方式实现菜单点击动作触发: <dxg:GridControl x:Name="mainGrid" ...

  10. const char*和char*的区别