2012-07-19 90 views
0

一點背景上:MVC jQuery的Ajax調用未通過身份驗證服務器

我已經在MVC3開發的Web應用程序,要求用戶在訪問記錄。

如果網頁已經停留了5分鐘,一個定時器會觸發一個jQuery ajax調用服務器,並返回一個包含已登錄用戶電子郵件地址和密碼文本框的部分視圖,以便用戶可以在繼續使用該應用程序之前重新輸入他們的詳細信息。

我使用表單身份驗證,其中存儲在瀏覽器中的Cookie設置爲在瀏覽器會話關閉時(即,它沒有設置Expires屬性)過期。

如果我將空閒計時器設置爲10秒或1分鐘,它工作正常。然而,如果我將它設置爲5分鐘,服務器下面就爲我所看到的:

HttpContext.Current.User.Identity.IsAuthenticated具有值爲false HttpContext.Current.User.Identity.Name有值「空」

所以我無法到達當前登錄的用戶的詳細信息。

任何想法?

+0

請參閱http://stackoverflow.com/questions/6557023/form-cookie-expiring-too-soon-on-production-server。它沒有幫助我,但也許是你的情況。 – 2012-07-19 15:21:45

回答

0

我已經注意到,在我的web.config中,在Authentication節點下,超時也設置爲5分鐘,這似乎正在影響它。因此,爲什麼它在5分鐘以下的任何請求都能正常工作。我將其更改爲30分鐘,乍看起來似乎正在工作。

0

您可以嘗試在web.config文件中保留用戶的設置,如isdebugmode,客戶端代碼和從那裏獲取。點網核不是一個不錯的選擇。

+0

感謝您的評論,但是這個問題最終導致配置中的會話超時。此外,DNN是一個內容管理系統,而這是一個複雜的業務應用程序 – eyeballpaul 2012-07-20 09:08:02