【问题标题】:Asp.net Core MVC application with Azure AD authentication. Unable to unprotect Message.State on browser back button具有 Azure AD 身份验证的 Asp.net Core MVC 应用程序。无法取消保护浏览器后退按钮上的 Message.State
【发布时间】:2022-01-20 13:39:01
【问题描述】:

我有一个 ASP.NET Core 3.1 MVC 应用程序,它与 AZURE AD 集成以进行身份​​验证。 问题是,在页面之间重定向时,它会向 url 发出请求,类似于:

https://login.microsoftonline.com/e3a291d3-8a20-4c35-8d08-38ffcafa479d/oauth2/authorize?client_id=86cda223-2296-46c3-a...

它会自动进行身份验证,并且下一页加载非常好。但是如果我按下后退按钮,它就会被重定向回这个奇怪的登录网址。这就是它抛出异常的时候。

【问题讨论】:

  • 与 AD 的集成身份验证适用于您的网络服务器和 Microsoft 身份验证服务器之间的大量来回交互,按下后退按钮会导致问题,这是设计使然。

标签: c# .net asp.net-core azure-active-directory asp.net-core-mvc


【解决方案1】:

您可以尝试的一种解决方法是在 Azure Ad 中将回复/重定向 URL 添加到您的应用程序,因此,回复 URL 将传递身份验证响应,如果身份验证成功,该响应将包含一个令牌。还可以尝试在您的 appSettings 中添加 PostLogoutRedirectURI,Azure AD 将在 OAuth 2.0 请求中重定向用户代理。

对于添加回复 URL,您可以导航到设置 > 回复 URL,并将 URL 设置为用户登录后将被引导到的页面。

参考: Reply URLs vs PostLogoutRedirectURIs in Azure Active Directory (AAD) | by Marilee Turscak

这里有一个类似的帖子,你可以参考Error code "Unable to unprotect the message.State" when redirecting

【讨论】:

  • 我尝试添加 "PostLogoutRedirectURI:"https : //xyz.com/platform/signin-oidc" 这与我在应用程序和 azure 门户中已有的 RedirectUrl 相同。没用://
猜你喜欢
  • 1970-01-01
  • 2017-05-13
  • 1970-01-01
  • 2016-11-26
  • 1970-01-01
  • 2019-12-13
  • 2022-10-25
  • 2022-08-16
  • 2019-06-30
相关资源
最近更新 更多