2012-07-29 21 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可能会话也被删除。

相关问题