我試圖在我的網站上實現「記住我」功能,以允許用戶保持登錄狀態而無需再次登錄。asp.net FormsAuthentication:如何在配置文件中設置多個超時值?
我做這樣的事情:
System.Web.Security.FormsAuthentication.SetAuthCookie(userName, true);
我注意到,因爲它依賴於在配置文件中設置的超時值的第二個參數(createPersistentcookie)是不是真的執着。
從我的理解:
如果createPersistentcookie = false,那麼該用戶將自動註銷,如果他/她關閉瀏覽器或活動x分鐘後(X在配置文件中被指定)。
如果createPersistentcookie = true,那麼如果用戶關閉瀏覽器,用戶將不會被註銷,但在x分鐘的活動(配置文件中指定x)後仍會註銷。
請注意,在這兩種情況下'x'具有相同的值並來自配置文件。
我想要做的是:
- 如果遊客不希望留在記錄所有的時間,我想他是不活動的20MN後自動註銷,如果他關閉瀏覽器。爲此,我將createPersistentcookie設置爲false,將超時值設置爲20mn。
- 如果訪問者希望始終保持登錄狀態,我希望他僅在閒置7天后才能自動登出。關閉瀏覽器不會將他註銷。爲此,我將createPersistentcookie設置爲true,將超時值設置爲7天。
您看到問題:在一種情況下,超時設置爲20mn,而在另一種情況下,超時設置爲7天,但在配置文件中,我只能指定1個值。
有什麼建議嗎?
我明白這一點,但它並沒有回答這個問題:如果你指定了很長的生命週期,那麼即使那些不想保持登錄狀態的用戶也會受到這個影響。想象一下,有人將他的瀏覽器打開,離開他的桌子,4小時後回來。即使createPersistentcookie = false,他仍將登錄。 – Anthony 2010-02-19 17:39:00