全局过滤器:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc; namespace UpdateService.Filter
{
public class AccessControl : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
bool flag = false;
List<FilterAttribute> list = filterContext.ActionDescriptor.GetFilterAttributes(false).ToList();
list.AddRange(filterContext.ActionDescriptor.ControllerDescriptor.GetFilterAttributes(false).ToList());
foreach (var item in list)
{
bool b = item.Match(new AccessControlNoFilter());
if (b == true)
{
flag = true;
break;
}
}
if (flag == true)
{
base.OnActionExecuting(filterContext);
}
else
{ HttpContextBase context = filterContext.HttpContext;
HttpResponseBase response = filterContext.HttpContext.Response;
HttpRequestBase request = filterContext.HttpContext.Request;
if (context.Session["User"] == null)
{
if (request.IsAjaxRequest())
{ HttpUnauthorizedResult httpStatus = new HttpUnauthorizedResult("Session Timeout");
filterContext.Result = httpStatus;
//禁用web.config中的form认证
//<!--<authentication mode="Forms">
//<forms loginUrl="~/Account/Login" timeout="2880" />
//</authentication>-->
}
else
{
ContentResult con = new ContentResult();
con.Content = "<script>alert('当前会话已超时!');location='/Home/Login';</script>";
filterContext.Result = con;
}
}
base.OnActionExecuting(filterContext);
} }
}
}

NO全局过滤器:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc; namespace UpdateService.Filter
{
public class AccessControlNoFilter : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
base.OnActionExecuting(filterContext);
}
}
}

FilterConfig.cs

public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
//全局Session检查
filters.Add(new AccessControl());
}
}

Jquery:

$(function () {
// 设置jQuery Ajax全局的参数
$.ajaxSetup({
complete: function (jqXHR, textStatus, errorThrown) {
if (jqXHR.statusText == "Session Timeout") {
alert('当前会话已超时!');
location = "/Home/Login";
} }
});
});

Aop检查Session,全局过滤器和No全局过滤器的更多相关文章

  1. asp.net core MVC 全局过滤器之ExceptionFilter异常过滤器(一)

    本系类将会讲解asp.net core MVC中的内置全局过滤器的使用,将分为以下章节 asp.net core MVC 过滤器之ExceptionFilter异常过滤器(一) asp.net cor ...

  2. JNI/NDK开发指南(十)——JNI局部引用、全局引用和弱全局引用

    转自:http://blog.csdn.net/xyang81/article/details/44657385   这篇文章比较偏理论,详细介绍了在编写本地代码时三种引用的使用场景和注意事项.可能看 ...

  3. NDK开发之引用(局部引用,全局引用,虚全局引用)

    1.先引出我遇到的一个问题(我觉得先写问题,这样印象更深刻一点): Android Java层在调用本地jni代码的时候, 会维护一个局部引用表(最大长度是512), 一般jni函数调用结束后, jv ...

  4. ThinkPHP中:检查Session是否过期

    1.创建Session public function index(){ $sess_time=time(); session('name','andy'); session('time_stamp' ...

  5. rstful登陆认证并检查session是否过期

    一:restful用户视图 #!/usr/bin/env python # -*- coding:UTF-8 -*- # Author:Leslie-x from users import model ...

  6. Taurus.MVC WebAPI 入门开发教程6:全局控制器DefaultController与全局事件。

    系列目录 1.Taurus.MVC WebAPI  入门开发教程1:框架下载环境配置与运行. 2.Taurus.MVC WebAPI 入门开发教程2:添加控制器输出Hello World. 3.Tau ...

  7. 实现MVC自定义过滤器,自定义Area过滤器,自定义Controller,Action甚至是ViewData过滤器

    MVC开发中几种以AOP方式实现的Filters是非常好用的,默认情况下,我们通过App_Start中的FilterConfig来实现的过滤器注册是全局的,也就是整个应用程序都会使用的,针对单独的Fi ...

  8. MVC自定义过滤器,自定义Area过滤器,自定义Controller,Action甚至是ViewData过滤器

    实现MVC自定义过滤器,自定义Area过滤器,自定义Controller,Action甚至是ViewData过滤器 MVC开发中几种以AOP方式实现的Filters是非常好用的,默认情况下,我们通过A ...

  9. MVC过滤器:自定义授权过滤器

    一.授权过滤器 授权过滤器用于实现IAuthorizationFilter接口和做出关于是否执行操作方法(如执行身份验证或验证请求的属性)的安全策略.AuthorizeAttribute类继承了IAu ...

随机推荐

  1. 改造的unity3d文件打包脚本

    ExportAssetBundles.rar // C# Example // Builds an asset bundle from the selected objects in the proj ...

  2. Gamescom2014:中国游戏公司37.com进军西方海外市场

    在2014年的德国科隆国际游戏展上.Xsolla曾与37.com聊天.我们讨论了中国公司眼下进军西方市场的战略,谈到营销的最有效方法.游戏货币化,并讨论在欧洲和土耳其的网页游戏的前景. 37wan 能 ...

  3. 算法笔记_090:蓝桥杯练习 7-1用宏求球的体积(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 使用宏实现计算球体体积的功能.用户输入半径,系统输出体积.不能使用函数,pi=3.1415926,结果精确到小数点后五位. 样例输入 一个 ...

  4. 请问大家ndk中LOCAL_SHARED_LIBRARIES LOCAL_LDLIBS什么区别

    请问大家ndk中LOCAL_SHARED_LIBRARIES LOCAL_LDLIBS什么区别啊 我先是编译了一个.so 然后在此次编译的使用调用,请问用LOCAL_SHARED_LIBRARIES和 ...

  5. Android Exception 12(has leaked ServiceConnection)

    09-09 15:12:31.154: E/ActivityThread(18855): Activity com..xxx.xx.act.LoadingAct has leaked ServiceC ...

  6. python基础教程_学习笔记12:充电时刻——模块

    充电时刻--模块 python的标准安装包含一组模块,称为标准库. 模块 >>> import math >>> math.sin(0) 0.0 模块是程序 不论什 ...

  7. Cacti监控mysql数据库服务器实现过程

    Cacti监控mysql数据库服务器实现过程 2014-05-29      0个评论    来源:Cacti监控mysql数据库服务器实现过程   收藏    我要投稿 1 先在cacti服务器端安 ...

  8. 利用 meta 标签重定向

      页面定期刷新,如果加url的,则会重新定向到指定的网页,content后面跟的是时间(单位秒),把这句话加到指定网页的<head></head>里一般也用在实时性很强的应用 ...

  9. 工作总结 .ToString("000000")

    ; ");//000123 指定格式 Console.WriteLine(ssp); ; ");//123456789 超过了返回原值 Console.WriteLine(ss);

  10. C# 中字符串string和字节数组byte[]的转换

    string转byte[]: byte[] byteArray = System.Text.Encoding.Default.GetBytes ( str ); byte[]转string: stri ...