2010-10-22 43 views
23

我有當超時時間設置爲2880的MVC 2應用程序(分鐘按我的理解,但即使是秒有一個問題):爲什麼真的要在ASP.NET MVC中縮短超時時間?

<authentication mode="Forms"> 
    <forms loginUrl="~/Account/LogOn" timeout="2880" /> 
</authentication> 

現在,這則應該平均48小時,或在至少48分鐘(如果值是秒)。但用戶只需幾個活動的分鐘後註銷...

這是爲什麼?任何幫助感謝!

+0

你有不同的瀏覽器嘗試這樣做?我曾經看到過這個問題,一個孤獨的用戶使用Firefox瀏覽一次。 – 2010-10-22 08:58:15

+0

是的,這個問題已經發生與火狐,Chrome,IE和Safari ... – Anders 2010-10-22 09:24:11

+0

這[博客文章(http://weblogs.asp.net/owscott/archive/2006/07/15/Forms-Authentication-Timeout .aspx)談到類似的情況;也許該設置正在代碼中的某處被覆蓋。 – 2010-10-22 12:53:50

回答

32

很多谷歌搜索後找到了答案終於...

必須設置在web.config文件中自定義的machineKey。我用這個發電機:

http://aspnetresources.com/tools/machineKey

這似乎都與虛擬主機,這會導致用戶被註銷,如果我理解正確的話在「循環」的東西。

無論如何,它現在正常工作!

+0

哇,這真是有用的信息。非常感謝!我有同樣的問題,它解決了它。 – 2011-03-09 08:55:07

+0

它爲什麼會發生? – Duk 2014-03-05 09:35:10

+4

鏈接不再活躍,你能在這裏解釋一下嗎?其實我面臨同樣的問題。我已經爲表單身份驗證提供了超時時間,例如timeout =「2880」slidingExpiration =「true」,sessionState超時時間爲1440.但仍然會話在10-15分鐘後過期。可能是什麼問題。 – gokul 2014-12-04 12:03:34

-3

2880是在幾分鐘內給出的。如果您添加slidingExpiration="true",它將自動註銷。見下面的例子。

<forms loginUrl="~/Account/LogOn" timeout="2880" slidingExpiration="true"/> 
+1

這是不對的。它不會自動註銷。當SlidingExpiration設置爲true時,身份驗證cookie有效的時間間隔將重置爲到期Timeout屬性值。 – Paul 2015-01-10 11:02:24