mvc 继承Controller类,每个控制器都继承它,实现统一验证登录
2016-08-25 17:11
549 查看
在WebForm下我们一般会设计个PageBase继承Page,在OnInit方法中实现对基本权限的验证业务,然后所有的页面在继承PageBase直接继承这项基本权验证业务。而在.NET MVC下我们如何再实现这个业务呢? 其实无非也是要设计一个ExtController基类来实现这个业务,而这个ExtController基类的权限验证业务切入点选在哪里合适呢?using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
namespace WS_Parking.commClass
{
public class baseControl : Controller
{
public baseControl()
{
}
protected override void Initialize(RequestContext requestContext)
{
base.Initialize(requestContext);
//这里实现用户信息的相关验证业务
if (requestContext.HttpContext.Session["user_id"] != null && requestContext.HttpContext.Session["user_name"] != null)
{
//string userid = requestContext.HttpContext.Session["user_id"].ToString();
//string user_CompID = requestContext.HttpContext.Session["user_CompID"].ToString();
//string user_name = requestContext.HttpContext.Session["user_name"].ToString();
}
else
{
//非登录用户跳转
requestContext.HttpContext.Response.Redirect("/login/index");
}
}
/// <summary>
/// 统一错误日志编写
/// </summary>
/// <param name="filterContext"></param>
protected override void OnException(ExceptionContext filterContext)
{
// 错误日志编写
string controllerNamer = filterContext.RouteData.Values["controller"].ToString();
string actionName = filterContext.RouteData.Values["action"].ToString();
string exception = filterContext.Exception.ToString();
// 执行基类中的OnException
base.OnException(filterContext);
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
namespace WS_Parking.commClass
{
public class baseControl : Controller
{
public baseControl()
{
}
protected override void Initialize(RequestContext requestContext)
{
base.Initialize(requestContext);
//这里实现用户信息的相关验证业务
if (requestContext.HttpContext.Session["user_id"] != null && requestContext.HttpContext.Session["user_name"] != null)
{
//string userid = requestContext.HttpContext.Session["user_id"].ToString();
//string user_CompID = requestContext.HttpContext.Session["user_CompID"].ToString();
//string user_name = requestContext.HttpContext.Session["user_name"].ToString();
}
else
{
//非登录用户跳转
requestContext.HttpContext.Response.Redirect("/login/index");
}
}
/// <summary>
/// 统一错误日志编写
/// </summary>
/// <param name="filterContext"></param>
protected override void OnException(ExceptionContext filterContext)
{
// 错误日志编写
string controllerNamer = filterContext.RouteData.Values["controller"].ToString();
string actionName = filterContext.RouteData.Values["action"].ToString();
string exception = filterContext.Exception.ToString();
// 执行基类中的OnException
base.OnException(filterContext);
}
}
}
相关文章推荐
- ASP.NET MVC 实现统一登录验证
- SpringMVC+Spring+mybatis 实现登录过程(使用后台验证框架)
- asp.net继承page类重写方法 实现最基本的用户登录验证 权限验证等
- MVC 自定义过滤器/特性来实现登录授权及验证
- Asp.net mvc验证用户登录之Forms实现
- Spring MVC 表单控制器实现验证用户登录验证
- Struts中用Filter实现每个页面的登录验证
- Spring+SpringMVC+Hiberate+MySql+Bootstrap实现一个简单验证登录实例
- 【MVC】会员注册/登录,普通验证,会员名是否注册Ajax验证以及会员邮件验证实现原理
- asp.net 继承自Page实现统一页面验证与错误处理
- MVC扩展控制器工厂,通过继承DefaultControllerFactory来决定使用哪个接口实现,使用Ninject
- 使用Servlet作为控制器的的MVC的应用-登录验证
- 在MVC中添加拦截器实现登录后的权限验证
- anglarjs1.6.3+owin 实现验证之一:统一拒绝非登录访问。
- Struts中用Filter实现每个页面的登录验证(转)
- Spring MVC 表单控制器实现验证用户登录验证
- spring mvc+spring+mybatis+ajax实现登录验证
- 【Java基础】采用Filter实现AOP完成统一登录验证
- Asp.net mvc验证用户登录之Forms实现详解
- 使用SSM(Spring+SpringMVC+Mybatis)框架搭建服务器实现登录验证