【问题标题】:after federated authentication, redirect to originally requested url联合身份验证后,重定向到最初请求的 url
【发布时间】:2013-06-28 19:47:14
【问题描述】:

我们已经使用 ThinkTecture 服务器设置了联合安全性。

当用户希望访问特定 URL 时,他们会被重定向到身份提供程序服务器 (IDP),然后登录并通过身份验证。

然后,IDP 服务器会将用户重定向回该依赖方的配置中指定的“重定向 URL”。

相反,我希望它被重定向到最初请求的 URL。

这可能吗?我已经阅读了一些关于 wreply 参数的内容,但不确定我如何使用它并在重定向之前拦截原始 Web 服务器上的身份验证级别调用。

更新 我意识到我的问题是由于我的网址包含哈希,例如http://domain.com/#customer/123 并且在哈希传递到 WIF 中的重定向 url 之后什么都没有。有关详细信息,请参阅下面的答案。

【问题讨论】:

    标签: adfs federated-identity thinktecture-ident-server


    【解决方案1】:

    您的应用可以在 wctx 参数中记住这样的上下文信息。如果您在 RP 中使用 WIF,那么这应该是自动完成的。

    【讨论】:

    • 我的 wctx 参数自动填充为:&wctx=rm%3d0%26id%3dpassive%26ru%3d%252f。所以,如果我用一些 guid 或原始 url 填充这个 wctx 来识别原始请求,那么在经过身份验证的重定向回ReplyTo/'Redirect Url'之后如何识别它。还是仅仅基于用户名?听起来 wreply 参数没用。
    • 这个答案更详细地概述了你的答案(我认为)。 stackoverflow.com/questions/10324627/…
    【解决方案2】:

    我知道发生了什么。我正在使用 WIF,正如 Brock 的回答所建议的那样,它应该自己做所有事情......而且确实如此。

    通常,如果您请求类似以下网址:http://domain.com/page,而 ThinkTecture 中的“重定向至”/ReplyTo 设置只是 http://domain.com/

    然后,当 WIF 调用 STS 时,它会获取所请求域的路径,在本例中为 /path,并将其添加到 &ru 参数中强>&wctx 参数。 &wctx 参数将如下所示:rm=0&id=passive&ru=%2fpage

    然后,在 STS 进行身份验证后,它将用户重定向回 ReplyTo url,http://domain.com,正文参数为 wctx,WIF 会选择它并使用ru 参数来做另一个重定向。

    问题是我请求的 url 是 http://domain.com/#page 并且 WIF 不包含 ru 中的 #page 参数。所以我的 ru 参数只是 /,所以它一直重定向到正确(但不正确)的 http://domain.com

    我想我需要用完整的 URL 自己设置 ru 值...除非有更好的方法。

    【讨论】:

    • 您找到了一种以编程方式设置 ru 值的方法吗?
    • 我也遇到了同样的问题。你找到答案了吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-29
    • 2020-02-03
    • 2011-06-23
    • 2015-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多