希望有人能幫助我解決這個問題,這個問題一直困擾着我一段時間。FormsAuthentication和會話cookie在Firefox中丟失
我正在建設一個網上商店,我正在與第三方託管的支付系統進行整合。 我讓人們檢查他們的訂單,當他們點擊繼續輸入他們的信用卡信息時,我通過與另一臺服務器上託管的支付系統的安全連接發送給他們,爲他們提供「OK」 - 發送給他們的URL回到我的網站,所以我可以在成功付款後關閉訂單並做一些其他的事情。
問題是在Firefox中,當遠程服務器重定向回我的服務器時,會話標識丟失,表單身份驗證Cookie是完全不同的,導致用戶被註銷。在IE,Safari和Chrome中情況並非如此。從Fiddler2
採取重定向到遠程主機之前
請求發送342個字節的cookie數據的:
ASP.NET_SessionId = uusldflsxdecn0cfkoaw11tx; .ASPXAUTH = 90109DFD47272DDB02905800582D [...] 1878E319DED0DD63BBCA07C1114CD02EA32E7FE3C28BB3ECA07D3EF2131E7425AB6AF4D48777FBE9F965675CA9D0A8CF66AF4433F2CE045ADB419317F9C6F04D32669EF5EB87135B9949EC4462F2826BB6B
遠程主機重定向到我的服務器
請求發送298個字節的cookie數據後:
.ASPXAUTH = A73EE1BE818E1FE934F0AD8D48078E26646318DA24886CAE9 [... ] 23AD63D679D0D838E746DE6357DBE0D3EA32A634873A62F399E1033138648314E83F1282A1949D64F4FC833948F1D3ABA5D997D8CABE3C6CA04256404A25FFC8C3D427A7640B488B01532314EE68
這對我來說似乎很奇怪,我一直無法找到解決辦法。我的做事過程在IE,Safari和Chrome中完美運行..
這是遠程服務器上的問題嗎?有什麼我做錯了嗎? 是否有某種方式重建會話?
從web.config中:
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="1440"/>
</authentication>
<sessionState mode="InProc" customProvider="DefaultSessionProvider">
<providers>
<add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, ..." connectionStringName="DefaultConnection"/>
</providers>
</sessionState>