簡體   English   中英

實施自動登錄鏈接(並在此之后立即結束會話)

[英]Implementing an Auto LogIn link (and ending the session right after that)

目前,我正在嘗試為網站發送的電子郵件實現自動登錄鏈接。

要求之一是,除非用戶手動登錄,否則用戶只能看到鏈接,而不能看到站點的其余部分。

我當前的問題是我無法正確完成注銷部分。 當前流是這樣的:

  1. 檢查用戶是否已登錄

  2. 如果不是,請檢查url查詢字符串並進行一些計算以檢查代碼

  3. 如果一切正常,請登錄用戶,更新CurrentUser和所有Session對象

  4. 然后我需要使用HttpContext.Response.Redirect(),因為系統的制作方式(據我所讀,使用Redirect是一種截斷請求的相當突然的方式,但是我目前的問題是系統將繼續檢查其他東西,如果我不在這里將其重定向到“登錄”頁面)

  5. 此時用戶已登錄

  6. 如果他們單擊頁面內的新鏈接,則在此新請求上,它將檢查在步驟4中創建的某些會話屬性,如果存在,則將注銷用戶。

我的問題是,它有時會起作用,而另一些時候卻無效。 我注意到的一個非常一致的事情是,當我在新的瀏覽器實例中打開鏈接時,它不起作用,但通常在已打開的瀏覽器上打開時,它才起作用。

我猜想重定向對象和新請求之間的會話對象可能會發生一些事情,特別是在新的瀏覽器實例上,但是不確定為什么。

編輯:問題發生在步驟6

我不確定我是否完全理解您的問題,但是這里有一些與會話問題有關的想法。

打開新實例時,可能會創建一個新的會話。 因此,您的數據不見了。

解決方法可能是將所需的值存儲在緩存中。 這很危險,因為如果iis認為沒有足夠的內存,則可以刪除緩存項。 https://support.microsoft.com/zh-CN/kb/323290

另一個解決方法可能是將所需的值保存在數據庫中。

或通過標題發送所需的數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM