簡體   English   中英

在asp.net中的會話

[英]session in asp.net

我在asp.net C#頁面中創建了一個會話,我在這樣的會話中存儲用戶的uniqueid,

Session["userid"] = clsUser.UniqueId;

並檢查每個頁面上的唯一ID,如果session為null,則重定向。 但是,如果我將用戶當前的URL復制到IE的其他選項卡中,則不會重定向到登錄頁面。 而是在瀏覽器子選項卡之間維護會話。

如果用戶嘗試在另一個子選項卡中復制URL,如何重定向到登錄頁面?

您不能這樣做,因為每個瀏覽器的選項卡共享相同的cookie和基於瀏覽器cookie的asp.net會話

您可以在頁面加載時使用Request.UrlReferrer,它將為您提供上一頁的URL。

if (Request.UrlReferrer != null)

{

//Load page  data as normal you are doing.  

}

else

{

// redirect to login page because user have copied and pasted the URL in new tab 

//  and it do not have it previous page url in **Request.UrlReferrer** property.

}

同一會話中有多個選項卡-這是正常現象。 也許您可以在頁面上添加第二個跟蹤HiddenField或使用ViewState來確保回發來自它所來自的同一頁面?

我認為沒有任何真正的方法可以防止這種情況。

origina選項卡具有正確的Referer。 復制的標簽沒有引薦來源網址。 使用Request.UrlReferrer 請記住,這並非絕對安全,因為老練的用戶可以操縱引薦來源網址。

暫無
暫無

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

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