ASP.NET.4.5.1+MVC5.0設置系統角色與權限_.Net教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:使用ASP.NET.4.5.1+MVC5.0 搭建一個包含 Ninject框架 項目
      這篇文章主要介紹了使用ASP.NET.4.5.1+MVC5.0 搭建一個包含 Ninject框架 項目的方法,需要的朋友可以參考下 1.創建一個空白解決方案 2.添加一個類庫 名稱為XXX.Domain 3.添加一個ASP.MVC 名稱為XXX.WebUI 4.選著空模版,勾選MVC核心引用 5.添加單元測試項目 XXX.UntiTes

      這篇文章主要介紹了ASP.NET.4.5.1+MVC5.0設置系統角色與權限的部分內容,后續我們將繼續討論這個話題,希望小伙伴們喜歡。    

      數據結構

      ASP.NET.4.5.1+MVC5.0設置系統角色與權限 模板無憂

      權限分配

      ASP.NET.4.5.1+MVC5.0設置系統角色與權限

      1.在項目中新建文件夾Helpers

      2.在HR.Helpers文件夾下添加EnumMoudle.Cs

       代碼如下:
      namespace HR.Helpers
      {
      public enum EnumMoudle
      {
      /// <summary>
      /// 模塊
      /// </summary>
      [EnumTitle("用戶管理")]
      SysUserManage_Role = 102,
      [EnumTitle("機構管理")]
      Department = 201,
      [EnumTitle("人事資料")]
      Employees = 301,
      [EnumTitle("系統管理")]
      BaseInfo = 404,
      }
      }

       

      3.在HR.Helpers文件夾下添加ControllerBase.Cs

       

      代碼如下:
      namespace HR.Helpers
      {
      public class ControllerBase : Controller
      {
      /// <summary>
      /// 操作人,傳IP....到后端記錄
      /// </summary>
      public virtual Operater Operater
      {
      get
      {
      return null;
      }
      }
      /// <summary>
      /// 分頁大小
      /// </summary>
      public virtual int PageSize
      {
      get
      {
      return 15;
      }
      }
      protected ContentResult JsonP(string callback, object data)
      {
      var json = Newtonsoft.Json.JsonConvert.SerializeObject(data);
      return this.Content(string.Format("{0}({1})", callback, json));
      }
      /// <summary>
      /// 當彈出DIV彈窗時,需要刷新瀏覽器整個頁面
      /// </summary>
      /// <returns></returns>
      public ContentResult RefreshParent(string alert = null)
      {
      var script = string.Format("<script>{0}; parent.location.reload(1)</script>", string.IsNullOrEmpty(alert) ? string.Empty : "alert('" + alert + "')");
      return this.Content(script);
      }
      public new ContentResult RefreshParentTab(string alert = null)
      {
      var script = string.Format("<script>{0}; if (window.opener != null) {{ window.opener.location.reload(); window.opener = null;window.open('', '_self', ''); window.close()}} else {{parent.location.reload(1)}}</script>", string.IsNullOrEmpty(alert) ? string.Empty : "alert('" + alert + "')");
      return this.Content(script);
      }
      /// <summary>
      /// 用JS關閉彈窗
      /// </summary>
      /// <returns></returns>
      public ContentResult CloseThickbox()
      {
      return this.Content("<script>top.tb_remove()</script>");
      }
      /// <summary>
      /// 警告并且歷史返回
      /// </summary>
      /// <param name="notice"></param>
      /// <returns></returns>
      public ContentResult Back(string notice)
      {
      var content = new StringBuilder("<script>");
      if (!string.IsNullOrEmpty(notice))
      content.AppendFormat("alert('{0}');", notice);
      content.Append("history.go(-1)</script>");
      return this.Content(content.ToString());
      }
      public ContentResult PageReturn(string msg, string url = null)
      {
      var content = new StringBuilder("<script type='text/javascript'>");
      if (!string.IsNullOrEmpty(msg))
      content.AppendFormat("alert('{0}');", msg);
      if (string.IsNullOrWhiteSpace(url))
      url = Request.Url.ToString();
      content.Append("window.location.href='" + url + "'</script>");
      return this.Content(content.ToString());
      }
      /// <summary>
      /// 轉向到一個提示頁面,然后自動返回指定的頁面
      /// </summary>
      /// <param name="notice"></param>
      /// <param name="redirect"></param>
      /// <returns></returns>
      public ContentResult Stop(string notice, string redirect, bool isAlert = false)
      {
      var content = "<meta http-equiv='refresh' content='1;url=" + redirect + "' /><body style='margin-top:0px;color:red;font-size:24px;'>" + notice + "</body>";
      if (isAlert)
      content = string.Format("<script>alert('{0}'); window.location.href='{1}'</script>", notice, redirect);
      return this.Content(content);
      }
      /// <summary>
      /// 在方法執行前更新操作人
      /// </summary>
      /// <param name="filterContext"></param>
      public virtual void UpdateOperater(ActionExecutingContext filterContext)
      {
      if (this.Operater == null)
      return;
      WCFContext.Current.Operater = this.Operater;
      }
      public virtual void ClearOperater()
      {
      //TODO
      }
      /// <summary>
      /// AOP攔截,在Action執行后
      /// </summary>
      /// <param name="filterContext">filter context</param>
      protected override void OnActionExecuted(ActionExecutedContext filterContext)
      {
      base.OnActionExecuted(filterContext);
      if (!filterContext.RequestContext.HttpContext.Request.IsAjaxRequest() && !filterContext.IsChildAction)
      RenderViewData();
      this.ClearOperater();
      }
      protected override void OnActionExecuting(ActionExecutingContext filterContext)
      {
      this.UpdateOperater(filterContext);
      base.OnActionExecuting(filterContext);
      //在方法執行前,附加上PageSize值
      filterContext.ActionParameters.Values.Where(v => v is Request).ToList().ForEach(v => ((Request)v).PageSize = this.PageSize);
      }
      /// <summary>
      /// 產生一些視圖數據
      /// </summary>
      protected virtual void RenderViewData()
      {
      }
      /// <summary>
      /// 當前Http上下文信息,用于寫Log或其他作用
      /// </summary>
      public WebExceptionContext WebExceptionContext
      {
      get
      {
      var exceptionContext = new WebExceptionContext
      {
      IP = Fetch.UserIp,
      CurrentUrl = Fetch.CurrentUrl,
      RefUrl = (Request == null || Request.UrlReferrer == null) ? string.Empty : Request.UrlReferrer.AbsoluteUri,
      IsAjaxRequest = (Request == null) ? false : Request.IsAjaxRequest(),
      FormData = (Request == null) ? null : Request.Form,
      QueryData = (Request == null) ? null : Request.QueryString,
      RouteData = (Request == null || Request.RequestContext == null || Request.RequestContext.RouteData == null) ? null : Request.RequestContext.RouteData.Values
      };
      return exceptionContext;
      }
      }
      /// <summary>
      /// 發生異常寫Log
      /// </summary>
      /// <param name="filterContext"></param>
      protected override void OnException(ExceptionContext filterContext)
      {
      base.OnException(filterContext);
      var e = filterContext.Exception;
      LogException(e, this.WebExceptionContext);
      }
      protected virtual void LogException(Exception exception, WebExceptionContext exceptionContext = null)
      {
      //do nothing!
      }
      }
      public class WebExceptionContext
      {
      public string IP { get; set; }
      public string CurrentUrl { get; set; }
      public string RefUrl { get; set; }
      public bool IsAjaxRequest { get; set; }
      public NameValueCollection FormData { get; set; }
      public NameValueCollection QueryData { get; set; }
      public RouteValueDictionary RouteData { get; set; }
      }
      }

       

      4.在項目文件夾中新建ControllerBase.cs

      分享:ASP.NET中的URL映射技巧
      在項目中經常要進行如下映射 將 http://yyjcw.com/a.aspx?name=llinzzi 映射到 http://yyjcw.com/llinzzi 首先要解決2個問題 第一是支持通配符的映射 URL映射是asp.net2.0新增的功能,不支持通配符 于是采用了NBEAR的 NBear.Web.Modules.UrlRewriteRules 進行通配符映射

      共3頁上一頁123下一頁
      來源:模板無憂//所屬分類:.Net教程/更新時間:2015-01-31
      相關.Net教程