You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
using NFine.Application.SystemManage; using NFine.Code; using System.Text; using System.Web; using System.Web.Mvc;
namespace NFine.Web { public class HandlerAuthorizeAttribute : ActionFilterAttribute { public bool Ignore { get; set; } public HandlerAuthorizeAttribute(bool ignore = true) { Ignore = ignore; } public override void OnActionExecuting(ActionExecutingContext filterContext) { if (OperatorProvider.Provider.GetCurrent() == null) { StringBuilder sbScript = new StringBuilder(); sbScript.Append("<script type='text/javascript'>alert('登录超时,请重新登录!');</script>"); filterContext.Result = new ContentResult() { Content = sbScript.ToString() }; return; } if (OperatorProvider.Provider.GetCurrent().IsSystem) { return; } if (Ignore == false) { return; } //if (!this.ActionAuthorize(filterContext))
//{
// StringBuilder sbScript = new StringBuilder();
// sbScript.Append("<script type='text/javascript'>alert('很抱歉!您的权限不足,访问被拒绝!');</script>");
// filterContext.Result = new ContentResult() { Content = sbScript.ToString() };
// return;
//}
} private bool ActionAuthorize(ActionExecutingContext filterContext) { var operatorProvider = OperatorProvider.Provider.GetCurrent(); var roleId = operatorProvider.RoleId; var moduleId = WebHelper.GetCookie("nfine_currentmoduleid"); var action = HttpContext.Current.Request.ServerVariables["SCRIPT_NAME"].ToString(); return new RoleAuthorizeApp().ActionValidate(roleId, moduleId, action); } } }
|