【发布时间】:2017-01-17 15:55:15
【问题描述】:
我有一个使用 OpenIdConnect 的 OWIN 中间件的应用程序。 startup.cs 文件使用 app.UseOpenIdConnectAuthentication 的标准实现。 cookie 设置为浏览器,但错误:
IDX10311:RequireNonce 为“真”(默认),但 validationContext.Nonce 为空。无法验证随机数。如果不需要检查 nonce,请将 OpenIdConnectProtocolValidator.RequireNonce 设置为 'false'。
我发现,当像大多数调试项目一样运行 fiddler 时,会发生这种行为。返回错误,但如果我返回该站点,一切正常并且我的用户已通过身份验证。有没有人在运行 fiddler 时看到过这种行为?
使用提琴手:
- OpenIdConnect 中的SecurityTokenValidated 通知执行了两次。
- 第二次通过后抛出 IDX10311 错误
- 浏览器包含有效的cookie,返回页面我可以查看有效的User.Identity数据。
在没有 fiddler 的情况下运行:
- SecurityTokenValidated 在 OpenIdConnect 中执行一次
- 未抛出错误,继续加载控制器操作以进行身份验证后重定向 Uri
- Cookie 也有效且 User.Identity 数据正确。
想法?我可以在不运行 fiddler 的情况下绕过它,但是在调试时最好也运行 fiddler 来检查流量。
【问题讨论】:
-
谢谢布洛克。我过去看过那个线程。对许多人来说,这似乎是一个未解决的问题。不过,我会从帖子中查看您的建议。我希望这不是 MS Katana 错误,尽管正如 Dominick 所建议的那样,因为 MS 已经有一段时间没有更新该 nuget 包了。
-
@gilm0079 你找到解决办法了吗?
标签: c# owin fiddler identityserver3 openid-connect