iT邦幫忙

0

有關網頁保持登入問題

請問要寫保持登入的功能 但是不太懂Cookie與Session

Session可以保持一個月不登出嗎??

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

1
solofawu
iT邦新手 5 級 ‧ 2016-05-06 15:10:41

保哥有寫過一篇關於 Cookie的文章,裡面有提到

  1. Persistent Cookie

這種類型的 Cookie 可以設定存在 Browser 一段時間(明確指定 Cookie 的 Expires 時間),如果你設定的時間夠長(例如:一天),即便 Browser 全部關閉或重開機後再開啟也還會存在。

例如以下程式:

[code:c#]

Response.Cookies["Email"].Value = TextBox1.Text; 
Response.Cookies["Email"].Expires = DateTime.Now.AddDays(1);

[/code]

所以你把cookie的時間設長一點,也都會是登入狀態

2
風の盆
iT邦新手 4 級 ‧ 2016-05-07 09:29:51

登入的session,不單是客戶端的cookies session需長期有效,
而且要配合 server 端 APP 上的 session 也是有效的。

通常是在 server 端的 session 來決定某個 client 是否是已有效的登入。
而怎麼確認 client 是否屬某個 server 的 session,
則是透過 存在 瀏覽器裡的 cookies 裡的值來決定,
而這 cookies 的值就是存 server 端的 session ID。

所以你所想要的長時間保持登入,
就牽涉到 server 端的 session 的長期有效,
以及瀏覽器上所相對應的 cookie 也是長期有效。

瀏覽器上的cookies有效,只要把有效時間拉長就可實現。
而server 端上的長期有效,可能會根據不同的框架或應用程式,
而有所不同。

有些web AP有各自的 session 的預設作法,需了解可怎麼做,
而有些web AP,可以將 session 寫到 DB裡,或者寫到 redis 之類的 NoSQL 裡,
就算重開機後,這些session也都會在,也會根據其所設定的有效期限,
在到期的時候消失或無效。

所以想建置網頁保持登入一個月不登出,
要考慮上述 瀏覽器端 以及 server 端的兩邊配合,才會有作用。

weiclin iT邦高手 4 級 ‧ 2016-05-07 14:32:29 檢舉

好完整啊~

yugochen iT邦新手 5 級 ‧ 2016-05-12 18:35:56 檢舉

想請問現在狀況是登入後,然後將瀏覽器結束掉再打開,就會產生登出
但是如果只有將瀏覽器關掉再打開,還是登入狀態
無法像奇摩,一直保持登入著

我要發表回答

立即登入回答