• 技术文章 >后端开发 >C#.Net教程

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

    高洛峰高洛峰2017-01-07 09:53:16原创821
    但是很多人都喜欢在

    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


    更多asp.net BasePage类+Session通用用户登录权限控制相关文章请关注PHP中文网!


    php入门到就业线上直播课:查看学习

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:BasePage Session
    上一篇:ASP.NET中在一般处理程序中使用session的简单介绍 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• c语言中源文件编译后生成什么文件• c语言标识符有哪些类型• ASP.NET使用Ajax如何返回Json对象的方法具体介绍• C#中GDI+编程10个基本技巧二• 应用绝对路径与相对路径
    1/1

    PHP中文网