c# - OpenIdConnectProtocolValidationContext.Nonce 为空
问题描述
嗨,有人可以在调用outlook rest api时帮助解决以下错误吗
IDX21323:RequireNonce 是 '[PII 默认隐藏。将 IdentityModelEventSource.cs 中的“ShowPII”标志设置为 true 以显示它。]'。OpenIdConnectProtocolValidationContext.Nonce 为空,OpenIdConnectProtocol.ValidatedIdToken.Payload.Nonce 不为空。无法验证随机数。如果您不需要检查 nonce,请将 OpenIdConnectProtocolValidator.RequireNonce 设置为“false”。请注意,如果找到“nonce”,它将被评估。
解决方案
又名IDX21323指向丢失 nonce cookie(由初始挑战调用设置)。检查您的初始登录调用(或 WebForms 回发登录)并确认您实际设置了 OpenIdConnect.nonce cookie(Chrome 网络选项卡)。
如果不是,我怀疑您遇到了与我们相同的问题,即 OWIN 中间件设置了 cookie,但其内容被您的旧应用程序的其他一些 cookie 修改意外覆盖。这很可能是 OWIN 中间件的错误(请参阅ASP.NET_SessionId + OWIN Cookies do not send to browser),因为它通过自己的 OwinContext 和 Cookie 表示实现来处理 cookie,这与标准 HttpContext 不同步。
当您丢失初始 nonce cookie 时如何修复: 我们避免在登录请求期间更改任何 cookie -> 因此 OWIN 中间件可以读取/写入其 cookie 而不会受到干扰。
推荐阅读
- maven - Travis CI 无法安装 openjdk11
- python - 在 Python 中针对一个列表对两个列表进行排序
- flask - 如何限制烧瓶应用程序只能在(家庭)内部网络上访问
- hyperledger-fabric - 超级账本结构交易
- html - 角。使孩子 100% 宽度的 flex 父母
- html - 如何使此网页适合任何屏幕尺寸或不同尺寸?
- javascript - 检测触摸与点击事件的更好方法
- data-structures - 如何设计具有 push() 和 popMin() 操作的数据结构,其中 push() 在 O(log(n)) 中,popMin 在恒定时间内,即 O(1)?
- php - Woocommerce 运费税和错误的总计算
- python - 如何用函数重新分配变量?