在BasePage页中重写OnLoad事件进行Session的验证,但如果页面刷新或者提交数据时,如何进行Session的验证呢?
解决方案 »
- 更新数据不成功.求助!
- oracle分页存储过程调用不成功?急……
- 继续发贴,根据输入IP地址获取MAC地址(c#)
- 如果你认为这是一个问题,请回答!
- 紧急!希望大家帮忙!
- 不读取数据库的列表如何按照时间先后排序?
- 菜鸟问题:想从asp.net里向一个asp页面提交一个表单数据或一些比较长的数据,不知道怎么办,高手指教!!!
- 极具挑战性!!!有谁用过authorize.net for aim的,帮小弟一把
- 急求视频点播如何实现
- 在Windows 2003 Server中建立ASP.NET网站,需要注意那些问题?
- 求一正则表达式
- System.Data.SqlClient.SqlException: '(' 附近有语法错误
我的意思是:如果页面长时间没有操作,Session过期后,用户进行操作,如:刷新、提交数据等。在这种情况下,如何使用BasePage页面判断Session是否过期。
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;/// <summary>
///PgageBaseModule 的摘要说明
/// </summary>
public class PgageBaseModule : Page
{
public PgageBaseModule()
{
//
//TODO: 在此处添加构造函数逻辑
//
Load += new EventHandler(CommonPage_Load);
}
void CommonPage_Load(object sender, EventArgs e)
{
if (!SessionBox.CheckUserSession())
{
Response.Write("<script language = javascript>alert('请先登录!');window.parent.location.href='../login.aspx'</script>");
Response.End();
} //如果不存在会员会话信息则跳转到用户登录页面
}
}页面继承这个类就行了
比如:在提交数据时,可能需要判断Session是否过期,那每个提交事件都去写代码判断Session是否过期,就觉得有点烦。
在BasePage中有很多事件,我想知道的是,在BasePage中使用什么事件来判断在数据提交或刷新页面时,Session是否过期。
我现在可能做到提,在页面第一次加载的时候判断Session是否过期,采用的是OnLoad事件。
{
public BasePage() { } protected override void OnInit(EventArgs e)
{
if (base.Session["LoginName"] == null || base.Session["LoginName"].ToString() == String.Empty)
{
Response.Redirect("~/Manager/inheritPage/Error.aspx");
}
}
}Error.aspx
protected void Page_Load(object sender, EventArgs e)
{
Response.Write("<script>top.location.href='../Default.aspx';</script>");
}
另外,根本问题还是sp说的丢失问题
/// <summary>
/// 要监听的事件。
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void BasePage_Load()
{
//权限角色表检查
#region 权限角色检查
if (Session["login"] == null || Session["roles"] == null)
{
string Name = Context.User.Identity.Name.ToString();//用户名
//添加权限
Session["login"] = new BLL.accounts().SelePermissionByUsername(Name);
//添加角色名称
Session["roles"] = new BLL.accounts().SeleRolesdescriptionByUsername(Name);
}
#endregion //权限检查
#region 权限检查
bool Permission = true;//初始值为没有权限
if (Session["login"] != null)
{
System.Collections.ArrayList list = (System.Collections.ArrayList)Session["login"];
if (list.Contains(PermissionID))
{
Permission = false;//验证通过
}
}
if (Permission)//权限验证不通过
{
Response.Clear();
Response.Write("<script language=\"javascript\">alert(\"对不起,你没有权限进入\");history.go(-1);</script>");
Response.End();
}
#endregion
}