Session 過期問題處理

2022-05-02 23:24:10 字數 1935 閱讀 4433

一、全域性**(即伺服器)級

二、**級

如果「編輯全域性配置」,就和上個配置一樣。

1、繼續選擇「狀態管理」-會話超時(分鐘)-設定為360,即360分鐘。效果同上,只不過只對當前**生效。

2、身份認證-forms-cooke超時,選擇"12:00:00",即12個小時。可選項共有以下八項:

00:15:00

00:30:00

01:00:00

02:00:00

04:00:00

08:00:00

12:00:00

1:00:00:00

即最長24小時,最小15分鐘。這是預設的配置。在應用中可以自由定製。

三、應用程式級

同**管理,只不過作用域僅限當前應用程式。

四、頁面級

在某頁面中,設定session.timeout = 30;即可臨時修改某頁面的會話過期時間。

檢視某個session的過期時間,可以用

其中,二和三的設定,體現在web.config中即:

<?

xml version="1.0"

?>

<

configuration

>

<

system.web

>

<

authentication 

mode

="forms"

>

<

forms 

name

="authlogin"

loginurl

="/login.aspx"

protection

="all"

timeout

="360"

slidingexpiration

="true"

/>

authentication

>

<

sessionstate 

mode

="inproc"

cookieless

="false"

timeout

="20"

/>

system.web

>

<

location 

path

="login.aspx"

>

<

system.web

>

<

authorization

>

<

allow 

users

="*"

/>

authorization

>

system.web

>

location

>

configuration

>

以上四處設定的優先順序為頁面級》應用程式級》**級》伺服器級。換句話說,如果頁面設定為20分鐘,**設定為120分鐘,那麼,顯然以20分鐘為生效的過期時間。

另外乙個值得注意 的地方。

在設定二處,設定會話超時(sessionstate)120分鐘,而同時用forms認證,設定為「00:15:00」,即15分鐘,並且slidingexpirationo為false,則真正生效的session過期時間是多少呢?

有效的結果是sessionstate的設定,即120分鐘。

如果有設定session過期時間沒有生效的,請檢查以上幾處配置。

Tomcat的Session過期處理策略

tomcat容器實現類都繼承了containerbase類,容器在啟動的時候都會呼叫containerbase類的threadstart 方法,threadstart 方法如下 protected void threadstart protected class containerbackgroun...

MVC過濾器處理Session過期

一 自定義乙個action過濾器 public class checksession actionfilterattribute else else 不想使用全域性過濾器可使用此標籤 public class nofilter attribute 二 註冊全域性過濾器 在filterconfig中新...

MVC過濾器處理Session過期

一 自定義乙個action過濾器 public class checksession actionfilterattribute else else 不想使用全域性過濾器可使用此標籤 public class nofilter attribute 二 註冊全域性過濾器 在filterconfig中新...