特征:登录之后,一般都会保存登录数据到Session中
方案一:js直接判断Session是否存在
js是没有办法获取SESSION的, 因为它只是客户端的脚本,SESSION是服务端的.如果想要获取SESSION 而不刷新页面就需要AJAX, 用JS 使用AJAX 获取服务端的SESSION
方案二:js通过隐藏表单判断Session是否存在
此方案是由方案一想出的,首先页面加载时,Session的值保存到隐藏表单中,然后通过JS访问该表单:以下是其主要代码
<script type="text/javascript" lanuage="javascript"> function sessionexit()
{
var session_exit=document.getElementById("session_exit");
var showorder=document.getElementById("showorder");
var cartpage=document.getElementById("cartpage");
if(session_exit.value=="")
{
showorder.href="#";
cartpage.href="#";
alert("您尚未登录,请登录……");
}
}
</script>
<td>
<a href="ShopCartPage.aspx" οnclick="sessionexit()" id="cartpage">
<img name="top_r1_c2" src="Image/img_shopcart.jpg" width="59" height="26" border="0"
id="top_r1_c2" alt="" /></a>
</td>
<td>
<img name="top_r1_c3" src="Image/img_mylnfo.jpg" width="66" height="26" border="0"
id="top_r1_c3" alt="" />
</td>
<td>
<a href="ShowOrder.aspx" id="showorder" οnclick="sessionexit()"><img name="top_r1_c4" src="Image/img_ordersearch.jpg" width="73" height="26" border="0"
id="top_r1_c4" alt="" /></a>
</td>
最后,在需要登录才能访问的页面的加载函数中加上
if (!IsPostBack)
{
//此处主要是为了在该页面内用户退出作出的动作
if (Session["User"] == null)
{
Response.Write("<meta http-equiv='refresh' content='1;url=Default.aspx' />");
}
}