联合身份验证后,重定向到最初请求的URL

时间:2013-07-01 15:55:51

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

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

当用户希望访问特定URL时,他们会被重定向到身份提供商服务器(IDP),他们会登录,获得身份验证。

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

相反,我希望将其重定向到最初请求的网址。

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

更新 我意识到我的问题是由于我的网址包含哈希值,例如 http://domain.com/#customer/123 ,并且在将散列传递到WIF内的重定向网址后没有任何内容。有关详细信息,请参阅下面的答案。

2 个答案:

答案 0 :(得分:3)

由你的应用程序在wctx param中记住这样的上下文信息。如果你在RP中使用WIF,那么这应该是自动完成的。

答案 1 :(得分:3)

我弄清楚发生了什么。我正在使用WIF,而Brock的回答表明它应该自己做所有事情......而且它就是。

通常,如果您请求的网址如下: http://domain.com/page ,并且ThinkTecture中的“重定向到”/“回复”设置只是 http://domain.com/ 。< / p>

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

然后在STS进行身份验证后,它会将用户重定向回到回复地址 http://domain.com ,身体参数为 wctx ,WIF会将其选中使用 ru 参数进行另一次重定向。

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

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