Session应用
可以使用于安全性相比之下较高的场合,比如后台登录。
在管理员登录时,如果登录成功,则需要给管理员创建一个Session对象。
在后台登录中,管理员拥有一定的操作时间,如果在这段时间不进行任何操作,为了保证安全,后台将自动注销,如果管理员需要再次进行操作,则需要再次登录。
WebForm1.aspx代码
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>Session使用实例</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="Button1" runat="server" Text="登录" onclick="Button1_Click" />
<asp:Button ID="Button2" runat="server" Text="注销" onclick="Button2_Click" Visible=false />
<br />
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>
</div>
</form>
</body>
</html>
WebForm1.aspx.cs代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace WebApplication1
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Session["admin"] != null)//如果Session[“admin”]不为空
{
if (String.IsNullOrEmpty(Session["admin"].ToString()))//则判断是否为空字符串
{
Button1.Visible = true;//显式登录控件
Button2.Visible = false;//隐藏注销控件
//Response.Redirect("admin_login.aspx");//跳转到登录页面
}
else
{
Button1.Visible = false;//隐藏登录控件
Label1.Text = "admin用户已登录";
Button2.Visible = true;//显式注销控件
}
}
}
protected void Button1_Click(object sender, EventArgs e)
{
Session["admin"] = "admin";//新增Session对象
Response.Redirect("Session.aspx");//页面跳转
}
protected void Button2_Click(object sender, EventArgs e)
{
Session.Clear();//删除所有Session对象
Response.Redirect("Session.aspx");
}
}
}
其中,Page_Load方法,判断是否已经存在Session对象。
如果存在,说明当前用户的权限是正常的,如果不存在Session对象,说明当前用户的权限不正确,或者是非法用户正在访问页面,可以直接跳转到登录页面,提示用户进行登录。