定义filter:
using
System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.Mvc;
using System.Web;
using System.Web.Routing;
using Vslea.Models;
namespace Vslea.Filters
{
public class RoleAttribute:ActionFilterAttribute,IAuthorizationFilter
{
public RoleAttribute(RoleTypeEnum roleType)
{
this .RoleType = roleType;
}
public RoleTypeEnum RoleType { get ; set ; }
public void OnAuthorization(AuthorizationContext filterContext)
{
HttpContextBase b = filterContext.RequestContext.HttpContext;
UserModel model = b.Session[ " User " ] as UserModel;
if (model != null )
{
if (model.RoleType != this .RoleType)
{
filterContext.Result = new RedirectToRouteResult( " default " , new RouteValueDictionary( new { controller = " Shared " , action = " Error " }));
}
}
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.Mvc;
using System.Web;
using System.Web.Routing;
using Vslea.Models;
namespace Vslea.Filters
{
public class RoleAttribute:ActionFilterAttribute,IAuthorizationFilter
{
public RoleAttribute(RoleTypeEnum roleType)
{
this .RoleType = roleType;
}
public RoleTypeEnum RoleType { get ; set ; }
public void OnAuthorization(AuthorizationContext filterContext)
{
HttpContextBase b = filterContext.RequestContext.HttpContext;
UserModel model = b.Session[ " User " ] as UserModel;
if (model != null )
{
if (model.RoleType != this .RoleType)
{
filterContext.Result = new RedirectToRouteResult( " default " , new RouteValueDictionary( new { controller = " Shared " , action = " Error " }));
}
}
}
}
}
在controller中:
[AcceptVerbs(HttpVerbs.Get)]
[Role(RoleTypeEnum.Admin)]
public ActionResult NewCustomer( int ? customerId)
{
}
[Role(RoleTypeEnum.Admin)]
public ActionResult NewCustomer( int ? customerId)
{
}
简单又方便,使代码结构更加清晰