我的需求是:
1. http://username.xx.xxxxx.com/index.htm 
2. http://xx.xxxxx.com/username.htm
第一个是vip会员的url,第二个是普通会员的url
我现在想在拦截器里写一个方法,用以判断这个会员是不是vip,防止一些不是vip的会员生成的是vip会员的主页。using System.Web.Mvc;
using Aqioo.Extensions;
using Aqioo.Results;
using Aqioo.Modules.Consult.Services;
namespace Aqioo.Modules.Consult.Filters
{
    public class VipFilter : IActionFilter//FilterAttribute,
    {
        private readonly IConsultService consultService;        public VipFilter(IConsultService consultService)
        {
            this.consultService = consultService;
        }        #region IActionFilter Members        public void OnActionExecuted(ActionExecutedContext filterContext)
        {
        }        public void OnActionExecuting(ActionExecutingContext filterContext)
        {
           string userName = filterContext.ActionParameters["userName"].ToString();
           if (!string.IsNullOrEmpty(userName))
           {
               var consult = consultService.GetConsultByUser(userName);
           }
        }        #endregion    }
}这是拦截器的代码。。
我应该怎样 来做呢?

解决方案 »

  1.   

    贴一下示例代码给你,仿造改改就可以了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或者action上面打上相应标记就好了中[AcceptVerbs(HttpVerbs.Get)]
            [Role(RoleTypeEnum.Admin)]
            public ActionResult Index(int? id)
            {
            }