2011-03-30 18 views
0

我有一個MVC 2.0應用程序,需要使用兩臺服務器之間負載平衡的表單身份驗證進行持久登錄(如果選擇)。表單身份驗證在多個服務器上是持久的

我的webconfig(兩臺服務器上)看上去像這樣:

<authentication mode="Forms"> 
    <forms name="MA_AuthCookie" loginUrl="~/Account/LogOn" timeout="86400" protection="All" path="/" slidingExpiration="false"/> 
</authentication> 

<machineKey validationKey="*************180C6E1FD3E9338B78ACD83CA0A99F27B985AF97871BDBA43E1426DB8FA82F811779BFB779D1E90EB9BCCDE71D3F0458392736B17D3" 
decryptionKey="*****************D72F47EF06B1F594CAAF1BEA311555A9D8E8" 
       validation="SHA1" 
       decryption="AES" /> 

超時時間設置爲60天,我使用下面的腳本來設置登錄cookie的。

FormsAuthentication.SetAuthCookie(userName, true); 

所有的偉大工程,或因此它似乎在這兩個服務器,直到我回來一小時左右後沒有活動,我的身份驗證cookie將消失。我不確定這是否與應用程序的負載平衡服務器上的工作進程有關,因爲我可以直接訪問其中一臺服務器,登錄並且我的登錄按原樣保持不變。另外,通過我的發現,我設置機器驗證密鑰的事實應該是在工作進程運行時解決密鑰的問題和重新創建。必須有我缺少的東西。如果任何人都可以指出我正確的方向,它將非常感激。

感謝, 比利

+0

看看服務器事件日誌。如果解密cookie存在問題,它將被記錄。 – 2011-03-31 06:22:01

回答

0

看起來像我未能實現明顯。儘管有時在關閉瀏覽器時登錄仍然存在,有時甚至沒有在會話結束時過期cookies的設置在我的Firefox瀏覽器中檢查。做出這些改變後一切都很好。