首页 > 解决方案 > OpenIdConnectProtocolValidationContext.Nonce 为空

问题描述

嗨,有人可以在调用outlook rest api时帮助解决以下错误吗

IDX21323:RequireNonce 是 '[PII 默认隐藏。将 IdentityModelEventSource.cs 中的“ShowPII”标志设置为 true 以显示它。]'。OpenIdConnectProtocolValidationContext.Nonce 为空,OpenIdConnectProtocol.ValidatedIdToken.Payload.Nonce 不为空。无法验证随机数。如果您不需要检查 nonce,请将 OpenIdConnectProtocolValidator.RequireNonce 设置为“false”。请注意,如果找到“nonce”,它将被评估。

标签: c#outlook-restapi

解决方案


又名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 而不会受到干扰。


推荐阅读