asp.net mvc 5 自定义应用程序中的 Microsoft 登录问题

Posted

技术标签:

【中文标题】asp.net mvc 5 自定义应用程序中的 Microsoft 登录问题【英文标题】:Microsoft login issue in asp.net mvc 5 custom application 【发布时间】:2021-09-13 16:22:52 【问题描述】:

我开发了 ASP.NET MVC 5 自定义应用程序。 基本上我想在其中实现 Microsoft 登录功能 SSO(单点登录),我已经将 Microsoft 登录自定义代码开发到应用程序中。当我在 Azure AD 应用程序上部署它并对其进行测试时,登录不起作用。它再次重定向到登录页面并引发以下错误:

IDX21323:RequireNonce 是“System.Boolean”。 OpenIdConnectProtocolValidationContext.Nonce 为空,OpenIdConnectProtocol.ValidatedIdToken.Payload.Nonce 不为空。无法验证随机数。如果您不需要检查 nonce,请将 OpenIdConnectProtocolValidator.RequireNonce 设置为“false”。请注意,如果找到“nonce”,则会对其进行评估。

我已经从 Azure AD App Quickstart 选项下载了示例项目并对其进行了测试。 但是,当我根据自己的要求对其进行更新并将其部署到 Azure AD 应用程序上然后对其进行测试时,它的行为相同并引发相同的错误。

那么如何在我的自定义应用程序中实现 Microsoft 登录或如何解决此问题?

【问题讨论】:

能否帮我提供示例项目的链接。 嘿@AjayKumarGhose-MT,您可以使用以下步骤下载示例项目:登录Azure Portal -> 转到“Azure Active Directory”-> 从左侧菜单中选择“应用程序注册”-> 选择您的 AAD 应用程序 -> 然后转到“快速启动”菜单 -> 单击“Web 应用程序”下的开始 -> 选择平台“ASP.NET” -> 单击“下载代码示例”按钮 【参考方案1】:

复制环境没有给我错误。错误可能是由于缺少nonce cookie。

Fiddler trace 将帮助捕获包含错误的指令。

查看SO thread 了解更多详情。还有MS Q&A,您已经讨论过同样的问题。

【讨论】:

以上是关于asp.net mvc 5 自定义应用程序中的 Microsoft 登录问题的主要内容,如果未能解决你的问题,请参考以下文章

我可以在 asp.net MVC-5 项目中的我的 aspnet 数据库中添加新的自定义表吗

在 asp.net mvc 5 中使用身份自定义用户和角色

如何在 ASP.NET MVC 5 中实现自定义身份验证

asp.net mvc - 完全脱离数据库中的自定义字段构建视图

ASP.Net MVC 2 中自定义成员资格提供程序中的角色分组

在 ASP.NET 5 (vNext) MVC 6 中实现自定义路由器