首页 > 解决方案 > 为什么深度链接在身份验证后不起作用?

问题描述

验证后,用户总是被发送到应用程序的根 url,即使他们最初请求了深层链接。

我已经读到有一个 RelayState 的概念,但是我不确定这是否是我需要在某处显式查找作为属性然后重定向的东西,或者如果我正确设置了应该自动运行的东西。

我曾尝试将 url 添加到 signOn url,但这似乎没有任何影响。不过,这只是当我在浏览器中手动输入网址时,所以我认为这不是“SP 发起的登录”

当我需要进行身份验证时,我会重定向到这样的深层链接(仅在尝试调试时进行硬编码)

string deepLink = "?returnUrl=http://localhost:35246" + app.Context.Request.FilePath;
string logInPage = "~/Saml2/SignIn" + deepLink;
HttpContext.Current.Response.Redirect(logInPage);

日志输出显示了这一点.. SignInUrl 应该显示不同的内容吗?

SUSTAINSYS [VERBOSE] Expanded Saml2Url
  AssertionConsumerServiceUrl: http://localhost:35245/Saml2/Acs
  SignInUrl: http://localhost:35245/Saml2/SignIn
  LogoutUrl: http://localhost:35245/Saml2/Logout
  ApplicationUrl: http://localhost:35245/

任何指针?

标签: sustainsys-saml2

解决方案


它需要是

?ReturnUrl=

而不是

?returnUrl=

推荐阅读