ASP.NET.4.5.1+MVC5.0設置系統角色與權限(3)_.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

       

      代碼如下:
      namespace HR.Helpers
      {
      public class PermissionAttribute : FilterAttribute, IActionFilter
      {
      public List<EnumMoudle> Permissions { get; set; }

       

      public PermissionAttribute(params EnumMoudle[] parameters)
      {
      Permissions = parameters.ToList();
      }

      public void OnActionExecuted(ActionExecutedContext filterContext)
      {
      //throw new NotImplementedException();
      }

      public void OnActionExecuting(ActionExecutingContext filterContext)
      {
      //throw new NotImplementedException();
      }
      }
      }

       

      8.然后在Controller或者Action方法加上驗證

       

      代碼如下:
      [Permission(EnumMoudle.Employees),Authorize, ValidateInput(false)]
      [Permission(EnumMoudle.SysUserManage_Role)]

       

      9.在用戶管理Controller中添加權限分配,修改方法

       代碼如下:


      #region 添加管理員
      /// <summary>
      /// 添加頁
      /// </summary>
      /// <param name="model">管理員實體類</param>
      /// <returns></returns>
      [Authorize]
      public ActionResult Add()
      {
      var moudleList = EnumHelper.GetItemValueList<EnumMoudle>();
      this.ViewBag.MoudleList = new SelectList(mouldeList, "Key", "Value");
      return View();
      }
      /// <summary>
      /// 添加事件
      /// </summary>
      /// <param name="model">實體類</param>
      /// <param name="fc"></param>
      /// <returns></returns>
      [Authorize, HttpPost, ValidateInput(false)]
      public ActionResult Add(SystemUser model, FormCollection fc)
      {
      model.BusinessPermissionString = fc["MoudelList"];
      model.State = 1;
      model.CreateTime = DateTime.Now;
      systemuserrepository.SaveOrEditModel(model);
      return RedirectToAction("UserList");
      }
      #endregion
      //修改權限
      [Authorize, AcceptVerbs(HttpVerbs.Post), ValidateInput(false)]
      public ActionResult Edit(int id, FormCollection fc)
      {
      var model = systemuserrepository.GetModel(id);
      if (model != null)
      {
      string password = model.PassWord;
      if (Request.Form["PassWord"] != "")
      {
      model.BusinessPermissionString = fc["MoudleList"];
      UpdateModel(model);
      systemuserrepository.SaveOrEditModel(model);
      }
      else
      {
      model.BusinessPermissionString = fc["MoudleList"];
      UpdateModel(model);
      model.PassWord = password;
      systemuserrepository.SaveOrEditModel(model);
      }
      return RedirectToAction("userlist");
      }
      else
      return View("404");
      }
      #endregion

       代碼如下:


      [Authorize]
      public ActionResult Edit(int id)
      {
      var model = systemuserrepository.GetModel(id);
      if (model != null)
      {
      var moudleList = EnumHelper.GetItemValueList<EnumBusinessPermission>();
      this.ViewBag.MoudleList = new SelectList(moudleList, "Key", "Value", string.Join(",", model.BusinessPermissionString.ToString()));
      return View(model);
      }
      else
      return View("404");
      }

       

      以上就是本文的全部內容了,后續我們將持續更新,小伙伴們是否喜歡本系列文章呢?

      分享: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教程