2013-07-01 64 views
3

我們已經使用ThinkTecture服務器設置聯合安全。聯合身份驗證後,重定向到最初請求的url

當用戶希望訪問特定的URL時,他們會被重定向到身份提供者服務器(IDP),他們將登錄並進行身份驗證。

然後,IDP服務器會將用戶重定向回配置中爲該依賴方指定的「重定向URL」。

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

這可能嗎?我已經讀了一些關於wreply參數的信息,但不知道如何在重定向之前使用它並攔截原始Web服務器上的身份驗證級別調用。

更新 我意識到我的問題是由於我的網址包含散列,例如, http://domain.com/#customer/123並且在散列傳遞到WIF內的重定向URL後沒有任何內容。有關更多詳情,請參閱下面的答案。

回答

3

這取決於您的應用程序在wctx參數中記住像這樣的上下文信息。如果您在RP中使用WIF,則應該自動完成。

+0

我wctx PARAM自動填充與此:&wctx = RM%3D0%26id%3dpassive%26ru%3D%252F。因此,如果我使用一些guid或原始URL填充此wctx以標識原始請求,那麼在經過身份驗證的重定向回到ReplyTo /'Redirect Url'後,如何識別它。或者它只是基於用戶名?聽起來像這個無用的參數是無用的。 –

+0

這個答案提供了你的答案更詳細的概述(我認爲)。 http://stackoverflow.com/questions/10324627/url-redirection-from-adfs-server –

3

我想清楚發生了什麼事。我正在使用WIF,正如Brock的回答所表明的,它應該自己做所有事情......事情就是這樣。

一般來說,如果你要求像一個網址:http://domain.com/page和「重定向到」中ThinkTecture /的ReplyTo設置僅爲http://domain.com/

然後當WIF召喚出的STS,它需要被請求域的路徑,在這種情況下/路徑,並把它添加到&る PARAM的& wctx PARAM內。 & wctx param將如下所示:rm = 0 & id = passive & ru =%2fpage

再經過STS已經證實了它的用戶重定向回的ReplyTo網址,http://domain.comwctx身體參數和WIF發現這一點,並使用RU參數去另做重定向。

問題是,我的請求的URL是http://domain.com/#page和WIF不包括#pageRU PARAM。所以我的ru帕拉姆只是/,所以它一直重定向到http://domain.com這是正確的(但不正確)。

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

+0

你有沒有想過一個方法來設置ru值編程? – machinarium

+0

我也遇到同樣的問題。你有沒有想出答案? – UnionP