zoukankan      html  css  js  c++  java
  • Http 协议 请求 响应

     今天 在做.net mvc 项目中 关于权限限定模块 通过重载Controller 的OnActionExecuting方法 进行 action调用前的验证

     protected override void OnActionExecuting(ActionExecutingContext filterContext)
            {
                base.OnActionExecuting(filterContext);

                #region 用户权限验证
                            String str =Request.Url.AbsoluteUri;
                            string[] strs = str.Split('/');
                           
                            if (strs.Count() >= 4)
                            {   
                                string skey = strs[3];

                                if (skey != "Login")
                                {
                                    #region 用户登陆验证
                                    if (Session["UserID"] == null || Session["current_user"] == null)
                                    {
                                        Session["alertInformation"] = "页面已经过期,请重新登陆!";
                                        //filterContext.HttpContext.
                                        Response.Redirect("/Login/Index");
                                        //Response.Redirect("/LossCancel/Index");
                                        Response.End();
                                      return;
                                    }
                                    #endregion           
                                    if (skey != "Welcome")
                                    {
                                        Hashtable table = GetHashtable();
                                        foreach (DictionaryEntry de in table)
                                        {
                                            if (skey.Equals(de.Key))
                                            {
                                                bool permission = false;

                                                try
                                                {
                                                    permission = new IsPermission().IsTrue(de.Value.ToString(), (string)Session["UserID"]);
                                                }
                                                catch (Exception ex)
                                                {
                                                    logger.Error(ex);
                                                    Session["alertInformation"] = "页面已经过期,请重新登陆!";
                                                    Response.Redirect("/Login/Index");
                                                    Response.End();  //此处语句执行后 服务器就给浏览器响应 但本线程继续往下执行

                                                                              //服务器接到响应302 立刻启动一个线程访问服务器(url:/Login/Index)

                                                }
                                                if (!permission)
                                                {
                                                    Session["alertInfop"] = "对不起,您没有此权限!";
                                                    Response.Redirect("/Login/Welcome");
                                                    Response.End();
                                                }
                                            }
                                        }
                                    }
        
                       }
                     }                    
                        
                     #endregion       

      对于 Http协议:每一次请求 对应一次响应 服务器每得到一次请求 就建立一个线程对其进行处理 并响应

  • 相关阅读:
    [NOIP2010]关押罪犯
    图的联通入门题
    【luogu4777】扩展中国剩余定理(EXCRT)[数论 扩展中国剩余定理]
    【luogu3868】【TJOI2009】猜数字[模板] [数论 中国剩余定理]
    【luogu1082】【noip2012】同余方程 [数论 扩展欧几里德]
    【luogu1962】斐波那契数列 [矩阵乘法]
    【uva1644】 素数间隔 Prime Gap [数学 质数筛]
    【uva307】小木棍 Sticks [dfs搜索]
    【luogu4011】孤岛营救问题(拯救大兵瑞恩) [最短路][分层思想]
    【noip2015】
  • 原文地址:https://www.cnblogs.com/xcwytu/p/2385210.html
Copyright © 2011-2022 走看看