zoukankan      html  css  js  c++  java
  • asp.net mvc 根据浏览器判断,如果是微信浏览器则进行网页授权,否则直接访问

    遇到这个需求,想到的第一点就是,这个肯定是需要写在一个通用的地方。方便调用。一般可以定义个 父类控制器在OnActionExcuting方法执行前写逻辑,先上代码,一边写代码一边讲解:

      /// <summary>
            /// 执行方法前
            /// </summary>
            /// <param name="filterContext"></param>
            protected override void OnActionExecuting(ActionExecutingContext filterContext)
            {
                if (filterContext.IsChildAction)
                    return;
    
                //需要排除校验的控制器名称 
                string[] excludeControllerName = { "error", "ThirdPartyNotify" };
                bool hasElenemt = MyCommFun.StringHasElenemt(filterContext.Controller.ToString().ToLower(), excludeControllerName);
                if (hasElenemt)
                {   //排除error控制器
                    return;
                }
           
                string userAgent = Request.UserAgent;
                //如果为微信端登录,则需要网页授权,排除error控制器
                if (userAgent.ToLower().IndexOf("micromessenger") > -1)
                {
                    if (WebHelper.IsAjax())//判断是否为ajax请求的情况
                    {
                       ProcessInvalidUser_Ajax(filterContext);
                        return;
                    }
                    else
                    {
    //网页授权 bool obpOk= OAuth2BaseProc(filterContext, wid); if (!obpOk) { return; } } } base.OnActionExecuting(filterContext); }

      

  • 相关阅读:
    查询计划Hash和查询Hash
    执行计划的重用
    执行计划组件、组件、老化
    执行计划的生成
    查询反模式
    T-SQL 公用表表达式(CTE)
    SQL 操作结果集 -并集、差集、交集、结果集排序
    SQL语句
    POJ 1821 单调队列+dp
    区间gcd问题 HDU 5869 离线+树状数组
  • 原文地址:https://www.cnblogs.com/puzi0315/p/9788985.html
Copyright © 2011-2022 走看看