mvc 权限验证

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using PaiXie.Core;
using Newtonsoft.Json;
using PaiXie.Utils;
using PaiXie.Bll;
namespace PaiXie.Pos.Admin {
	/// <summary>
	/// 权限控制
	/// </summary>
	public class MvcMenuFilter : ActionFilterAttribute {

		#region 权限控制

		private bool _isEnable = true;

		public MvcMenuFilter() {
			_isEnable = true;
		}

		public MvcMenuFilter(bool IsEnable) {
			_isEnable = IsEnable;
		}
        	
		public override void OnActionExecuting(ActionExecutingContext filterContext) {		
			
			try {
				//默认true 执行验证
				   if (_isEnable) {
					var route = filterContext.RouteData.Values;
					string area = filterContext.RouteData.DataTokens["area"].ToString();
					var url = string.Format("/{0}/{1}/{2}", area, route["controller"], route["action"]);
				    //没有权限	
				if (!new Users().IsAuth(url)) {
						//if (_isEnable) {
						BaseResult BaseResult = new BaseResult();
						BaseResult.result = -99;
						BaseResult.message = "没有权限!";
						string str = JsonConvert.SerializeObject(BaseResult, Formatting.Indented);
						ContentResult ContentResult = new ContentResult();
						ContentResult.Content = str;
						filterContext.Result = ContentResult;
				//}
				}
				}
			}
			catch (Exception ex) { PlanLog.WriteLog(ex.ToString(), "MvcMenuFilter"); }
			base.OnActionExecuting(filterContext);
		} 
		#endregion
	}
}

  

原文地址:https://www.cnblogs.com/lyl6796910/p/5213358.html