定义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)
{
}
简单又方便,使代码结构更加清晰