使用Session验证用户登录
//在ASP.NET中,利用Session对象验证用户是否登录都方法很简单,如例子中,当用户安全登录时,可以利用如下代码保存用户都登录名,并跳转到Login.aspx中。
if(txtName.Text == "accp" && txtPassword.Text == "accp")
{
Session["UserName"] = txtName.Text.Trim();
Response.Redirect("Login.aspx");
}
使用Session进行验证每个页面,只要每个页面继承了此基类就完成验证了 OK!
public class Basic:System.Web.UI.Page
{
/// <summary>
/// 用户登录信息
/// </summary>
public User loginUser
{
get
{
if (Session["loginUser"] != null)
{
return (User)Session["loginUser"];
}
else
{
return null;
}
}
set
{
Session["loginUser"] = value;
}
}
/// <summary>
/// 判断用户是否已登录
/// </summary>
public bool isLogin
{
get
{
if (loginUser != null)
{
return true;
}
else
{
return false;
}
}
}
/// <summary>
/// 初始化方法
/// </summary>
/// <param name="e"></param>
protected override void OnLoad(EventArgs e)
{
if (!this.AppRelativeVirtualPath.Substring(2).Equals("login.aspx"))
{
if (isLogin == false)
{
Response.Redirect("index.aspx");
}
}
base.OnLoad(e);
}
/// <summary>
/// 异常处理
/// </summary>
/// <param name="e"></param>
protected override void OnError(EventArgs e)
{
Response.Redirect("index.aspx");
//清除异常
Server.ClearError();
}
}
看看这两个基类,哪个更合适
/// <summary>
///IfSession 的摘要说明
/// </summary>
public class IfSession : Page
{
public IfSession()
{
//
//TODO: 在此处添加构造函数逻辑
//
}
protected override void OnLoad(EventArgs e)
{
if (!Page.AppRelativeVirtualPath.Substring(2).Equals("Login.aspx"))
{
if (Session == null)
{
Response.Redirect("Login.aspx");
}
if (Session["CurrentUser"] == null)
{
Response.Redirect("Login.aspx");
}
if ((Session["CurrentUser"] as LYC )== null)
{
Response.Redirect("Login.aspx");
}
}
base.OnLoad(e);
}
public LYC lyc
{
get
{
return Session["CurrentUser"] as LYC;
}
}
}
Session对象默认失效期为20分钟,您可以在Web.Config中对其进行设置,代码如下
<system.web>
<sessionState timeout="40"/>
</system.web>
- 上一篇: mysql5.6.20配置,解决占用内存太大问题
- 下一篇: php对象在内存中的存在形式分析
