欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

asp.net BasePage类+Session通用用户登录权限控制

程序员文章站 2024-03-07 18:22:27
但是很多人都喜欢在 复制代码 代码如下: protected void page_load(object sender, eventargs e) {} 里面来写代码,甚...
但是很多人都喜欢在
复制代码 代码如下:

protected void page_load(object sender, eventargs e)
{}

里面来写代码,甚至在某些按钮里面写判断session是否存在~~
这样当然是能实现效果的,问题就在,如果有1000个页面~~你需ctrl+c。。。ctrl+v 很多次~~~
我的思路就是写一个basepage类继承 system.web.ui.page
复制代码 代码如下:

public class basepage : system.web.ui.page
{
//pageunload事件,并不是指浏览器关闭,而是指页面关闭,所以刷新的时候,依然会执行以下事件
protected void page_unload(object sender, eventargs e)
{
}
protected override void onpreinit(eventargs e)
{
base.onpreinit(e);
if (!sessiondata.islogin())
{//这里写 跳转到登陆页面:例如:
response.redirect(string.format("~/relogin.aspx?page={0}", request.path));
}}

为什么我这里要带 page 参数,就是为了在登录成功以后可以返回到登录前的那一个页面
另外我也贡献一个sessiondata类:
复制代码 代码如下:

using system;
using system.collections.generic;
using system.linq;
using system.web;
using expressplatform.common;
namespace expressplatform.web.appcode
{
public class sessionkey
{
public const string userinfo = "user";
}
/// <summary>
/// 所有session中的数据,在该类管理
/// </summary>
public class sessiondata
{
/// <summary>
/// 获取session 中的 用户信息
/// </summary>
/// <returns></returns>
public static mdlsessioncustomerinfo getuserinfo()
{
mdlsessioncustomerinfo userinfo = sessionmanager<mdlsessioncustomerinfo>.getsessionobject(sessionkey.userinfo);
if (userinfo == null)
{
userinfo = new mdlsessioncustomerinfo();
//把内容储存到应用程序
sessionmanager<mdlsessioncustomerinfo>.setsessionobject(sessionkey.userinfo, userinfo);
}
return userinfo;
}
/// <summary>
/// 重新设置session 中的用户信息
/// </summary>
/// <param name="userinfo"></param>
public static void setuserinfo(mdlsessioncustomerinfo userinfo)
{
sessionmanager<mdlsessioncustomerinfo>.setsessionobject(sessionkey.userinfo, userinfo);
}
/// <summary>
/// 清楚session中用户信息
/// </summary>
public static void clearuserinfo()
{
sessionmanager<mdlsessioncustomerinfo>.setsessionobject(sessionkey.userinfo, null);
}
/// <summary>
/// 是否登入
/// </summary>
/// <returns></returns>
public static bool islogin()
{
bool ret = false;
mdlsessioncustomerinfo userinfo = sessionmanager<mdlsessioncustomerinfo>.getsessionobject(sessionkey.userinfo);
if (userinfo != null)
ret = true;
return ret;
}
}
}

复制代码 代码如下:

public class basepage : system.web.ui.page