您的位置:首页 > 其它

使用Session验证用户登录

2009-01-05 16:12 621 查看
//在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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐