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

  1. /// <summary>
  2. /// 执行方法前
  3. /// </summary>
  4. /// <param name="filterContext"></param>
  5. protected override void OnActionExecuting(ActionExecutingContext filterContext)
  6. {
  7. if (filterContext.IsChildAction)
  8. return;
  9.  
  10. //需要排除校验的控制器名称
  11. string[] excludeControllerName = { "error", "ThirdPartyNotify" };
  12. bool hasElenemt = MyCommFun.StringHasElenemt(filterContext.Controller.ToString().ToLower(), excludeControllerName);
  13. if (hasElenemt)
  14. { //排除error控制器
  15. return;
  16. }
  17.  
  18. string userAgent = Request.UserAgent;
  19. //如果为微信端登录,则需要网页授权,排除error控制器
  20. if (userAgent.ToLower().IndexOf("micromessenger") > -1)
  21. {
  22. if (WebHelper.IsAjax())//判断是否为ajax请求的情况
  23. {
  24. ProcessInvalidUser_Ajax(filterContext);
  25. return;
  26. }
  27. else
  28. {
    //网页授权
  29. bool obpOk= OAuth2BaseProc(filterContext, wid);
  30. if (!obpOk)
  31. {
  32. return;
  33. }
  34. }
  35.  
  36. }
  37.  
  38. base.OnActionExecuting(filterContext);
  39.  
  40. }

  

asp.net mvc 根据浏览器判断,如果是微信浏览器则进行网页授权,否则直接访问的更多相关文章

  1. ASP.NET MVC Filters 4种默认过滤器的使用【附示例】 数据库常见死锁原因及处理 .NET源码中的链表 多线程下C#如何保证线程安全? .net实现支付宝在线支付 彻头彻尾理解单例模式与多线程 App.Config详解及读写操作 判断客户端是iOS还是Android,判断是不是在微信浏览器打开

    ASP.NET MVC Filters 4种默认过滤器的使用[附示例]   过滤器(Filters)的出现使得我们可以在ASP.NET MVC程序里更好的控制浏览器请求过来的URL,不是每个请求都会响 ...

  2. php判断是否为微信浏览器访问

    今天遇到个问题,就是需要判断是否在微信浏览器内访问: if (strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false) {    ...

  3. JavaScript判断是否为微信浏览器或支付宝浏览器

    可以用手机安装的微信和支付宝扫描下方二维码测试 <!DOCTYPE html> <html lang="en"> <head> <meta ...

  4. js判断是否是微信浏览器以及重定向

    async created () {//这个是判断是否是微信浏览器, let ua = navigator.userAgent.toLowerCase() if (ua.match(/MicroMes ...

  5. 【函数封装】javascript判断是否是微信浏览器

    //判断是否是微信浏览器的函数 function isWeiXin(){ //window.navigator.userAgent属性包含了浏览器类型.版本.操作系统类型.浏览器引擎类型等信息,这个属 ...

  6. php判断是否是微信浏览器

    php判断是否是微信浏览器 直接上代码: <?PHP function is_wechat_browser(){ $user_agent = $_SERVER['HTTP_USER_AGENT' ...

  7. 用js判断是否是微信浏览器

      //判断是否是微信浏览器的函数 function isWeiXin(){ //window.navigator.userAgent属性包含了浏览器类型.版本.操作系统类型.浏览器引擎类型等信息,这 ...

  8. PHP判断是否是微信浏览器访问的方法

    PHP判断是否是微信浏览器访问的方法 PHP判断是否是微信浏览器访问的方法 都是干货,微信开发可能需要用到,留着日后COPY. public function isWeichatBrowser() { ...

  9. atitit。浏览器缓存机制 and 微信浏览器防止缓存的设计 attilax 总结

    atitit.浏览器缓存机制 and 微信浏览器防止缓存的设计 attilax 总结 1. 缓存的一些机制 1 1.1. http 304 1 1.2. 浏览器刷新的处理机制 1 1.3. Expir ...

  10. ASP.NET MVC 4中如何为不同的浏览器自适应布局和视图

    在ASP.NET MVC 4中,可以很简单地实现针对不同的浏览器自适应布局和视图.这个得归功于MVC中的"约定甚于配置"的设计理念. 默认的自适应 MVC 4自动地为移动设备浏览器 ...

随机推荐

  1. 秒懂HTTPS

    http和https HTTP:超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式.协作式和超媒体信息系统的应用层协议.HTTP是万维网的数 ...

  2. python 数据结构之二分查找的递归和普通实现

    二分查找就是待查找的列表进行分半搜索 如下所示 二分查找普通实现: def erfen(alist, item): start = 0 end = len(alist) - 1 while start ...

  3. js小函数工具

    突然想到建一片文章关于自己所学到的一些小函数,今后需要的时候可以直接当工具使用. 1.获取当前时间小程序. function showTime(){ var show_day=new Array('星 ...

  4. 如何在github上搭建网站?

    3年前就想写这篇文章了,一直没写,拖到现在,迟到总比不到好,哈哈.github pages只支持静态博客(html,css,js),不支持服务端(php,physon). 一.尝试一下 1.在电脑上安 ...

  5. Redis自学笔记:1.简介

    博主教材:李子骅.人民邮电出版社.<redis入门指南> 博主操作系统系统:虚拟机Ubuntu16.04 博主redis版本:3.0.6 第1章:简介 redis是一个开源的.高性能的.基 ...

  6. python基础一 ------如何统计一个列表元素的频度

    如何统计一个列表元素的频度 两个需求: 1,统计一个随机序列[1,2,3,4,5,6...]中的出现次数前三的元素及其次数 2,统计一片英文文章中出现次数前10 的单词 两种方法: 1,普通的for循 ...

  7. [POI2012]Tour de Bajtocja

    [POI2012]Tour de Bajtocja 题目大意: 给定一个\(n(n\le10^6)\)个点\(m(m\le2\times10^6)\)条边的无向图,问最少删掉多少条边能使得编号小于等于 ...

  8. Unable to find utility "instruments", not a developer tool or in PATH

    在调试ios上的项目的时候出现报错 unable to find utility "instruments", not a developer tool or in PATH 报错 ...

  9. mysql trigger

    转自:https://www.cnblogs.com/zyshi/p/6618839.html 阅读目录 什么是触发器 特点及作用 例子:创建触发器,记录表的增.删.改操作记录 弊端 什么是触发器 简 ...

  10. GMA Round 1 大吉大利,晚上吃鸡

    传送门 大吉大利,晚上吃鸡 新年走亲访友能干点啥呢,咱开黑吃鸡吧. 这里有32个人,每个人都可能想玩或者不想玩,这样子一共有$2^{32}$种可能.而要开黑当然得4人4人组一队(四人模式),所以说如果 ...