2010-01-05 25 views
1

我有一個使用asp.net mvc構建的應用程序,並部署了超過2個Amazon EC2實例。我正在使用表單身份驗證來驗證用戶。我只是做一個快速查找給定用戶名和密碼,如果我找到了一個匹配我設置身份驗證Cookie,就像這樣:
註銷並使用每次刷新,但不使用TempDataProvider?

if(_repository.Login(username, password)) 
    FormsAuthentication.SetAuthCookie(username, false); 

這很好,只要可以作爲一臺機器上的應用程序,但是,一旦我利用Amazon Elastic Load Balancing在兩臺機器上部署網站,該網站的行爲就非常怪異。當用戶登錄時,站點會識別登錄的用戶,在刷新或兩次後,站點不再將該用戶視爲登錄用戶。如果用戶再次保持刷新一段時間,應用程序會再次將該用戶視爲已登錄的用戶,並且這種情況會一直持續下去。
我知道如果我在存儲SessionState inproc時可能會出現這樣的問題。 我根本沒有使用SessionState

我在這裏想念什麼傢伙?

:我編輯的會話狀態[雖然我不使用既不會議也不TempData的任何地方我的應用程序,一樣怪異的行爲是有被存儲在狀態服務器上。

回答

2

您需要同步場中所有服務器之間的<machinekey>。否則,表單認證票據只適用於發佈它的機器。我懷疑這與Session/TempData有什麼關係。

+0

太棒了!非常感謝克雷格,這對我來說是可以接受的。 – Galilyou 2010-01-05 15:58:35

相關問題