[英]Implementing an Auto LogIn link (and ending the session right after that)
目前,我正在嘗試為網站發送的電子郵件實現自動登錄鏈接。
要求之一是,除非用戶手動登錄,否則用戶只能看到鏈接,而不能看到站點的其余部分。
我當前的問題是我無法正確完成注銷部分。 當前流是這樣的:
檢查用戶是否已登錄
如果不是,請檢查url查詢字符串並進行一些計算以檢查代碼
如果一切正常,請登錄用戶,更新CurrentUser和所有Session對象
然后我需要使用HttpContext.Response.Redirect(),因為系統的制作方式(據我所讀,使用Redirect是一種截斷請求的相當突然的方式,但是我目前的問題是系統將繼續檢查其他東西,如果我不在這里將其重定向到“登錄”頁面)
此時用戶已登錄
如果他們單擊頁面內的新鏈接,則在此新請求上,它將檢查在步驟4中創建的某些會話屬性,如果存在,則將注銷用戶。
我的問題是,它有時會起作用,而另一些時候卻無效。 我注意到的一個非常一致的事情是,當我在新的瀏覽器實例中打開鏈接時,它不起作用,但通常在已打開的瀏覽器上打開時,它才起作用。
我猜想重定向對象和新請求之間的會話對象可能會發生一些事情,特別是在新的瀏覽器實例上,但是不確定為什么。
編輯:問題發生在步驟6
我不確定我是否完全理解您的問題,但是這里有一些與會話問題有關的想法。
打開新實例時,可能會創建一個新的會話。 因此,您的數據不見了。
解決方法可能是將所需的值存儲在緩存中。 這很危險,因為如果iis認為沒有足夠的內存,則可以刪除緩存項。 https://support.microsoft.com/zh-CN/kb/323290
另一個解決方法可能是將所需的值保存在數據庫中。
或通過標題發送所需的數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.