3

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

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

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

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

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

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

4

2 回答 2

3

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

通常,如果您请求这样的网址:http://domain.com/page并且 ThinkTecture 中的“重定向到”/ReplyTo 设置只是http://domain.com/

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

然后,在 STS 进行身份验证后,它将用户重定向回 ReplyTo url,带有wctx和 WIF正文参数的http://domain.com将其拾取并使用ru参数进行另一个重定向。

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

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

于 2013-07-02T10:42:36.493 回答
3

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

于 2013-07-01T17:05:48.983 回答