背景: 我使用兩個MVC3網站進行混合模式身份驗證。我使用Site1中的Windows身份驗證對一個人進行身份驗證,然後將該人轉發到使用表單身份驗證的Site2上。我的解決方案是在用戶通過Windows身份驗證進行身份驗證後收集site1中的用戶信息。然後,我會將此信息寫入cookie,然後重定向到站點2.然後,站點2將使用cookie中的信息來使用Forms Auth自動登錄用戶。這兩個應用程序都位於同一個域中,應該能夠共享cookie,但是在重定向之前cookie不可用,直到頁面刷新或點擊站點中的鏈接(訪問第2頁)。MVC3 Cookie未包含在請求中,直到刷新或訪問第二頁
無論如何,這是我的問題。我創建cookie,然後將用戶從Site1轉發到Site2。
...{cookie created here and added to response}...
HttpContext.Response.Redirect("http://site2.mydomain.com")
當我這樣做時,請求中沒有cookie。但是,一旦在Site2的主頁上,我可以點擊刷新,然後我的cookie就成爲請求的一部分,我的身份驗證就可以正常工作。
我需要我的迴應寫的cookie到客戶端,然後得到該cookie在請求加入,但它似乎使用的Response.Redirect時跳過......
UPDATE: 我已經讀過請求只會在請求發出之前存在cookie時才包含cookie。由於我正在將cookie寫入請求的響應中,因此只有後續請求才會包含cookie。所以,我需要的是強制第二個請求的方法,一旦他們從最初的請求得到我的迴應。所以...
用戶發送請求--->響應返回cookie --->強制另一個請求(應該包含cookie)--->返回請求的頁面。
我可以使用JavaScript來做到這一點嗎? javascript是否可以檢查某個特定名稱的cookie的響應,並在找到後重定向到當前頁面?
也許我需要做一個客戶端重定向後的響應與餅乾? –
沒有評論添加投票我的問題是什麼? –