2012-07-29 50 views
0

是否有適當的方法在客戶端清除服務器端的會話。 我使用Java腳本來清除會話,但在以往的網頁會被重定向然後服務器端會話值將清除,即使在點擊事件不火這裏是一個Java腳本代碼,我在ONCLICK給李打電話是否有任何合適的解決方案在客戶端清除服務器端的會話?

<script type="text/javascript"> 
    function Clear_() { 

     '<%=Session["UID"]=""%>';// only this line executes when ever the page is redirected. 

     alert('ok'); 
    } 
    </script> 

回答

0

之所以出現這種情況是當網頁被解析,它看起來總是在服務器端代碼和第一執行它。它與解析服務器端控件相同。因此,即使您編寫了代碼,要觸發任何按鈕的單擊事件,代碼也會在每次加載時執行。 即使你試評在服務器標籤中的代碼,該代碼就會被執行。

功能Clear_(){

// '<%=Session["UID"]=""%>';// still this line executes 

    alert('ok'); 
} </script> 

回答你的問題是NO。會話存儲爲服務器端,那麼你怎麼能清除它的側面。你必須讓AJAX請求到服務器和服務器

更新2

清除該屆會議的相同aspx頁面解析服務器控制。這些服務器標籤需要在請求處於服務器時進行處理,然後對這些值進行評估。例如,如果您希望在服務器上從某個會話值填充javascript中的某個值。

//在JavaScript
變種myvalue的= <%=會話[ 「SomeVal」]%>

所以當頁面被解析,服務器標記內的值進行評估,並與它們的取代實際值(對於控件,用html代替)。因此,在最終的輸出,被髮送到客戶端,下面的標記將在JavaScript發送

//
變種myvalue的= 50;

您可以通過在瀏覽器中查看「查看源代碼」進行驗證。

+0

我得到了解決方案。感謝您的幫助。 我還有一個問題,首先解析並執行服務器標籤。但在這裏我混淆了JavaScript函數與服務器端在這裏的連接是什麼,意味着解析器如何將其視爲服務器標記或服務器元素? 因爲我寫了javascript函數在客戶端執行它。 – user484458 2012-07-29 20:45:10

+0

查看我的更新回答 – Anand 2012-07-30 03:58:19

+0

謝謝我現在的困惑刪除..感謝很多幫助:) – user484458 2012-07-30 16:45:31

1

你好,你可以用這個代碼

function Clear() 
{ 
    location.href="logout.aspx"; 
} 

在代碼文件logout.aspx.cs後面嘗試

Session.Clear(); 
0

你能做什麼「援引javascri服務器端頁面並在那裏清除會話「。

如果您正在使用jQuery,這是簡單的logout.aspx頁面加載事件這裏面

<a href="somepage.aspx" id="logout">Logout</a> 

<script type="text/javascript" > 
$(function(){ 
    $("#logout").click(function(e){ 
     e.preventDefault(); 
     $.post("logout.aspx",function(data){ 
      //now do something in client side. May be show a message to user 
     alert("Succesfully logged out"); 
     }); 

    }); 
}); 
</script> 

Assumung,你正在清理會話。 您可能需要更新UI的某些部分(登錄的用戶名,一些liknks等),一旦用戶被註銷。

0

您可以使用頁面中的方法javascript

PageMethods.EndSession();

[WebMethod()] 
public static void EndSession() 
{ 
    HttpContext.Current.Session.Abandon(); 
} 

不要忘記設置EnablePageMethods爲true的腳本管理器。

+0

它將工作,只要確保在用戶的情況下控制定義頁面方法在頁面而不是用戶控制 – 2012-07-29 18:02:12

0

我認爲不可能從客戶端刪除會話bcz會話是服務器端。如果我們清除客戶端瀏覽器中的所有cookie,然後可能會話也會被刪除,那麼有一件事情可能會在我們創建會話時刪除bcz如果我們成功刪除了asp.net會話,則會生成存儲在客戶端瀏覽器中的會話ID那麼cookie可能會話也被刪除。

相關問題