簡體   English   中英

從C#(.Net 3.5)頁面導航時調用方法的方法?

[英]Way to call a method when navigating away from a page in C# (.Net 3.5)?

我正在做一個項目,以便一旦將用戶定向到某個頁面,他們就會收到一定級別的“身份驗證”,並且如果用戶在完成操作之前試圖離開頁面,則我想刪除此“身份驗證”形成。

我想知道從重定向到適合Page事件生命周期的特定頁面(如果有建議的話,則從另一個頁面)重定向時,是否是一種方法來調用?

我是C#和.Net框架的新手,所以,如果這不是標准的,那么請告訴我什么是正確的方法。

謝謝!

您可以嘗試使用由JavaScript事件觸發的PageMethod。 這需要在aspx中使用ScriptManager。

示例:JavaScript

function LeavePage(e) {
    PageMethods.RevokeAuthentication();
}

window.onbeforeunload = LeavePage;

后面的C#代碼

[PageMethod]
public static void RevokeAuthentication()
{
    // Do stuff here
}

但是,此方法並非萬無一失。 如果客戶端的瀏覽器已禁用腳本,則JavaScript將不會運行。

也許更好的方法是使用Session在MasterPage中處理身份驗證。 MasterPage與PHP開發人員使用include的方式相似。

例如OnLoad檢查頁面,如果pageName允許更高的身份驗證,請對其進行設置,否則將其撤銷。

您的頁面實際上是無狀態的,因此不會知道該頁面正在離開。 頁面由C#生成后,便被傳輸到瀏覽器。 該頁面不在C#中“活動”。 一旦生成,就是這樣。

您可以使用會話變量來跟蹤用戶的“身份驗證”級別。 如果它們到達其他頁面,則可以檢查此變量的值並采取相應措施。 如果他們填寫了表格,則可以在會話中記錄該事實。

另一種選擇是在用戶離開頁面時使用javascript回調到服務器。 這不會在Page事件生命周期內起作用,因為它已經完成了

這種“身份驗證”是否存在很長時間? 您需要堅持嗎?

暫無
暫無

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

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