C# MVC 用户登录状态判断
2015-11-19 17:31
411 查看
在Filters文件夹下添加一个类AuthenticationAttribute ,代码如下:
// 登录认证特性 public class AuthenticationAttribute : ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext filterContext) { if (filterContext.HttpContext.Session["username"] == null) filterContext.Result = new RedirectToRouteResult("Login", new RouteValueDictionary { { "from", Request.Url.ToString() } }); base.OnActionExecuting(filterContext); } }
在Controller中的使用方法如下:
public class HomeController : Controller { [Authentication] public ActionResult Index() { return View(); } }
如果你想针对整个MVC项目的所有Action都使用此过滤器,步骤如下(a,b选择一种就好):
a. 确保Global.asax.cs的Application_Start方法中包含如下红色行:
public class MvcApplication : System.Web.HttpApplication { protected void Application_Start() { AreaRegistration.RegisterAllAreas(); WebApiConfig.Register(GlobalConfiguration.Configuration); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); } }
b. 在FilterConfig.cs文件中注册相应的特性过滤器:
public class FilterConfig { public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new HandleErrorAttribute()); filters.Add(new AuthenticationAttribute()); } }
相关文章推荐
- C#属性访问器
- c# 泛型(1)
- C#编程中设置程序只可被运行一次的方法
- 【C#】DataGridView显示数据表
- c# 对于批量表的统一查询 WM_CONCAT行列转换行数
- C#对象克隆介绍
- C# Async与Await用法
- 【C#】利用System.IO中的File类中的ReadAllText与WriteAllText输入输出小文件
- 程序设计: 猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒。(C#控制台程序)
- 【C#】不可变字符串String的常用方法
- C#导出excel图表(使用ChartWizard)
- c#读xls
- C# 之 服务端获取远程资源
- C# Keywords
- 参数数组
- 在VS中如何让C#语言编写的程序自动以管理员身份运行
- C# 可变参数
- C#对象序列化与反序列化
- C# 设计模式----抽象工厂模式
- C# 设计模式----抽象工厂模式