页面判断用户是否登录

45 篇文章 2 订阅

aspx:

先创建基类

 

public partial class Test : System.Web.UI.Page
    {

//这里实现load或者 OnPreInit 区别不大
        protected override void OnPreInit(EventArgs e)
        {
            //这里进行判断
            if (Session["admin"] == null)
            {
                this.Response.Redirect("login.aspx");
                return;
            }
            base.OnPreInit(e);
        }
    }

 

 

 

 

 

继承基类(需要判断登录的页面,统一继承Test)

 

public partial class _default : Test
    {


        private void Page_Load(object sender, EventArgs e)
        {
        }  
      }

 

 

 

 

MVC:

 

方法一:

 

public class BaseWebController : BaseController
    {

        protected override void OnActionExecuting(ActionExecutingContext filterContext)
        {


            if ((CurrentUser == null || CurrentUser.id == 0))
            {
                filterContext.HttpContext.Response.Redirect("/Login/Login");
            }

            base.OnActionExecuting(filterContext);
        }

    }


页面继承

 

 

 public class MyProjectController : BaseWebController
    {

        MyProjectDAL mp = new MyProjectDAL();
        //
        // GET: /MyProject/

        public ActionResult Index(int parentId=0)
        {
            var q = mp.GetProject(CurrentUser, parentId);

            return View();
        }

    }

 

 

 

 

 

方法二:

这个就转载一下了  http://www.cnblogs.com/liuyunsheng/archive/2012/12/25/2832504.html?utm_source=tuicool&utm_medium=referral

 

 1     /// <summary>
 2     /// 参数过滤器
 3    /// </summary>
 4     public class ParamFilter : ActionFilterAttribute
 5     {
 6         /// <summary>
 7         /// 执行Action之前操作
 8       /// </summary>
 9         /// <param name="filterContext"></param>
10         public override void OnActionExecuting(ActionExecutingContext filterContext)
11         {
12             ///处理Action之前操作内容根据我们提供的规则来定义这部分内容
13             base.OnActionExecuting(filterContext);
14         }
15 
16         /// <summary>
17         /// 执行Action之后操作
18       /// </summary>
19         /// <param name="filterContext"></param>
20         public override void OnActionExecuted(ActionExecutedContext filterContext)
21         {
22             base.OnActionExecuted(filterContext);
23         }
24     }     /// <summary>
 2     /// 参数过滤器
 3    /// </summary>
 4     public class ParamFilter : ActionFilterAttribute
 5     {
 6         /// <summary>
 7         /// 执行Action之前操作
 8       /// </summary>
 9         /// <param name="filterContext"></param>
10         public override void OnActionExecuting(ActionExecutingContext filterContext)
11         {
               //跳转方式
               //filterContext.Result=new RedirectResult("/User/Login");
12             ///处理Action之前操作内容根据我们提供的规则来定义这部分内容
13             base.OnActionExecuting(filterContext);
14         }
15 
16         /// <summary>
17         /// 执行Action之后操作
18       /// </summary>
19         /// <param name="filterContext"></param>
20         public override void OnActionExecuted(ActionExecutedContext filterContext)
21         {
22             base.OnActionExecuted(filterContext);
23         }
24     }
            [ParamFilter]
        public ActionResult Index(string a=null)
        {
            
            return Content("试试看1"+(a??""));
        }

 

 

 

 

HandlerInterceptor可以用于拦截Controller请求,可以在请求处理之前或之后添加一些额外的处理逻辑,例如判断用户是否登录。以下是一个实现判断用户是否登录的HandlerInterceptor示例: ```java public class LoginInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { HttpSession session = request.getSession(); // 判断用户是否登录,如果已登录则放行 if (session.getAttribute("user") != null) { return true; } // 如果用户登录,则跳转到登录页面 response.sendRedirect(request.getContextPath() + "/login"); return false; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { } } ``` 在上述代码中,preHandle方法会在请求处理之前被调用,可以在该方法中获取当前用户登录状态,如果未登录则重定向到登录页面,否则放行请求。这样就可以通过HandlerInterceptor来判断用户是否登录了。需要注意的是,除了preHandle方法外,还有两个方法postHandle和afterCompletion,它们分别在请求处理之后和视图渲染之后被调用,可以在这两个方法中添加一些额外的处理逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值