【问题标题】:Removing CallbackPath from OpenIdConnectAuthenticationOptions gives IDX21323 Error从 OpenIdConnectAuthenticationOptions 中删除 CallbackPath 会产生 IDX21323 错误
【发布时间】:2021-11-20 15:55:00
【问题描述】:
我正在尝试使用 Axure Active Directory 并按照 Microsoft 网站上给出的说明来验证我的 Asp.Net MVC Web 应用程序
https://docs.microsoft.com/en-us/azure/active-directory/develop/tutorial-v2-asp-webapp.
我遇到了错误:
“/MyWebFileDirectory”应用程序中的服务器错误。
"IDX21323: RequireNonce 为 '[PII is hidden]'。OpenIdConnectProtocolValidationContext.Nonce 为空。
所以我添加了回调路径
CallbackPath = new PathString("/MyWebFileDirectory/signin-azuread-oidc").
现在 IDX21323 错误消失了。但如果我尝试访问任何具有 Authorize 属性的操作方法,它总是重定向到我的主页。所以它每次都进行身份验证并重定向到主页。
在这里寻找修复。
【问题讨论】:
标签:
c#
asp.net-mvc
azure
azure-active-directory
owin
【解决方案1】:
解决方案 1:
检查 AD 应用注册 --> 设置 --> 回复 URL 中提到的 URL。例如,如果该网址是:https://localhost:44348/
转到 MVC 项目 --> 属性(右键单击和属性) --> 网页部分 --> 开始 URL 和项目 URL 也应该是:https://localhost:44348/
解决方案 2:
当对应用程序的请求不包含nonce cookie时,可能会发生错误
Try with this code
app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions()
{
Notifications = new OpenIdConnectAuthenticationNotifications()
{
AuthenticationFailed = AuthenticationFailedNotification<OpenIdConnect.OpenIdConnectMessage, OpenIdConnectAuthenticationOptions> authFailed =>
{
if (authFailed.Exception.Message.Contains("IDX21323"))
{
authFailed.HandleResponse();
authFailed.OwinContext.Authentication.Challenge();
}
await Task.FromResult(true);
}
}
});
更多详情请参考SO-Thread