考慮使用持久cookie的表單身份驗證的情況。註銷使用表單身份驗證從不同瀏覽器/計算機登錄的用戶
如果同一用戶使用兩個不同的瀏覽器或兩臺不同的機器,當用戶從瀏覽器/機之一註銷登錄,不會他仍然能夠從其他瀏覽器/機登錄?
通常情況下,如何Web應用程序處理這種情況?
考慮使用持久cookie的表單身份驗證的情況。註銷使用表單身份驗證從不同瀏覽器/計算機登錄的用戶
如果同一用戶使用兩個不同的瀏覽器或兩臺不同的機器,當用戶從瀏覽器/機之一註銷登錄,不會他仍然能夠從其他瀏覽器/機登錄?
通常情況下,如何Web應用程序處理這種情況?
形式與餅乾(不管他們是否是持久與否)認證是基於瀏覽器會話(永久cookie會跨越同一個瀏覽器的多個會話課程作業(在同一臺機器上使用的用戶帳戶)。於是兩個瀏覽器會話的(或兩臺不同的瀏覽器或兩臺機器上的瀏覽器等)將被視爲與遠程表單身份驗證有關的不同範圍
因此,用戶可以從不同的瀏覽器會話進行多次登錄,並且註銷一個不會影響其他人。到網絡應用程序是否允許同一用戶進行多個併發登錄,例如,網上銀行網站將限制爲只有一個用戶會話 - 所以如果用戶從不同的會話登錄,則以前的會話無效(即用戶爲 登出)。必須在ASP.NET中編寫自定義實現才能這樣做 - 典型實現會使每個用戶會話都進入數據庫(無論如何通常都需要用於審計目的) - 所以無論何時添加新條目,都會檢查是否存在任何活動會話爲同一用戶,如果是,那麼該會話被標記爲不活動。每個請求都會檢查當前用戶會話是否處於活動狀態,如果不是,則會將此類消息標記給用戶。
我通常這樣說:我在user表中有一個會話列(數據庫)當我的用戶日誌存儲值Ÿ在它。我當他註銷其更改爲ñ用戶試圖登錄。每次,我在相應的會話列檢查值,如果它是Ÿ我告訴他已經登錄的用戶,如果它是ň然後我允許用戶登錄但我們必須小心並在用戶註銷或關閉瀏覽器時將值設置爲N。
我有SRINIVAS同意大部分。這裏是我對這個問題的看法
利用這種方法的任何後續的登錄將導致需要重新認證&無效的任何其它認證。實際上迫使用戶只使用1個瀏覽器/計算機
「但是我們必須小心並在用戶註銷或關閉瀏覽器時將值設置爲N.」對於註銷,我可以想象邏輯,但是當用戶關閉瀏覽器時,如何將值更新爲N ..? – Praditha