我有一個域http://abc.com
和一個子域http://sub.abc.com
。我正在通過共享表單身份驗證cookie在兩個站點之間實施單點登錄。這是通過讓兩個站點在machineKey中共享validationKey和decryptionKey來實現的。表單身份驗證ReturnUrl和子域用於單一登錄
當用戶點擊子域中的頁面時,我希望用戶在根域中進行身份驗證並將其重定向回子域。用戶目前被重定向到登錄頁面,但ReturnUrl想要重定向到根站點。
例如,目前:http://abc.com/login.aspx?ReturnUrl=%2fsecure%2fdefault.aspx
,但我想:http://abc.com/login.aspx?ReturnUrl=http:%2f%2fsub.abc.com%2fsecure%2fdefault.aspx
如何才能實現這一目標?
在我的子域的web.config我可以這樣來配置目前AUTH:
<authentication mode="Forms">
<forms name=".ASPNET" loginUrl="http://abc.com/login.aspx" protection="All" timeout="1440" path="/" domain="abc.com" enableCrossAppRedirects="true" />
</authentication>
如果你想讓abc.com的cookies可以被sub.abc.com訪問,我相信你需要將域設置爲「.abc.com」而不是「abc.com」。不知道關於returnurl的事情。您可能必須通過檢查UrlReferer手動執行此操作。 – 2011-02-11 17:38:20
你不需要像域名* .abc.com這樣的通配符嗎? – Gallen 2011-02-11 17:42:44
@Daniel Schaffer,我需要在兩個站點的配置中設置「.abc.com」嗎?或者只是子域的? – LordHits 2011-02-11 17:43:25