MVC基于角色权限控制--用户管理
生活随笔
收集整理的這篇文章主要介紹了
MVC基于角色权限控制--用户管理
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
?用戶管理模塊包括?新增用戶、修改用戶、展示用戶列表、刪除用戶、用戶角色分配、用戶角色刪除、用戶權(quán)限分配
這里只介紹關(guān)于權(quán)限有關(guān)的?用戶角色分配、用戶角色刪除、用戶權(quán)限分配
新建控制器 UserInfoController繼承 BaseController
#region 展示用戶已經(jīng)有的角色public ActionResult ShowUserRoleInfo(){int id = int.Parse(Request["id"]);var userInfo= UserInfoService.LoadEntities(u=>u.ID==id).FirstOrDefault();ViewBag.UserInfo = userInfo;//查詢所有的角色.short delFlag = (short)DeleteEnumType.Normarl;var allRoleList= RoleInfoService.LoadEntities(r=>r.DelFlag==delFlag).ToList();//查詢一下要分配角色的用戶以前具有了哪些角色編號(hào)。var allUserRoleIdList = (from r in userInfo.RoleInfoselect r.ID).ToList();ViewBag.AllRoleList = allRoleList;ViewBag.AllUserRoleIdList = allUserRoleIdList;return View();}#endregion#region 完成用戶角色的分配public ActionResult SetUserRoleInfo(){int userId = int.Parse(Request["userId"]);string[]allKeys=Request.Form.AllKeys;//獲取所有表單元素name屬性值。List<int> roleIdList = new List<int>();foreach (string key in allKeys){if (key.StartsWith("cba_")){string k = key.Replace("cba_","");roleIdList.Add(Convert.ToInt32(k));}}if (UserInfoService.SetUserRoleInfo(userId, roleIdList))//設(shè)置用戶的角色 {return Content("ok");}else{return Content("no");}}#endregion#region 展示用戶權(quán)限public ActionResult ShowUserAction(){int userId = int.Parse(Request["userId"]);var userInfo=UserInfoService.LoadEntities(u=>u.ID==userId).FirstOrDefault();ViewBag.UserInfo = userInfo;//獲取所有的權(quán)限。short delFlag = (short)DeleteEnumType.Normarl;var allActionList= ActionInfoService.LoadEntities(a => a.DelFlag == delFlag).ToList();//獲取要分配的用戶已經(jīng)有的權(quán)限。var allActionIdList = (from a in userInfo.R_UserInfo_ActionInfoselect a).ToList();ViewBag.AllActionList = allActionList;ViewBag.AllActionIdList = allActionIdList;return View();}#endregion#region 完成用戶權(quán)限的分配public ActionResult SetUserAction(){int actionId = int.Parse(Request["actionId"]);int userId = int.Parse(Request["userId"]);bool isPass = Request["isPass"] == "true" ? true : false;if (UserInfoService.SetUserActionInfo(actionId, userId, isPass)){return Content("ok");}else{return Content("no");}}#endregion#region 完成權(quán)限刪除public ActionResult ClearUserAction(){int actionId = int.Parse(Request["actionId"]);int userId = int.Parse(Request["userId"]);var r_userInfo_actionInfo=R_UserInfo_ActionInfoService.LoadEntities(r=>r.ActionInfoID==actionId&&r.UserInfoID==userId).FirstOrDefault();if (r_userInfo_actionInfo != null){if (R_UserInfo_ActionInfoService.DeleteEntity(r_userInfo_actionInfo)){return Content("ok:刪除成功!!");}else{return Content("ok:刪除失敗!!");}}else{return Content("no:數(shù)據(jù)不存在!!");}}#endregion?
UserInfoService中添加分配角色和分配權(quán)限的方法
/// <summary>/// 為用戶分配角色/// </summary>/// <param name="userId">用戶編號(hào)</param>/// <param name="roleIdList">要分配的角色的編號(hào)</param>/// <returns></returns>public bool SetUserRoleInfo(int userId, List<int> roleIdList){var userInfo = this.CurrentDBSession.UserInfoDal.LoadEntities(u=>u.ID==userId).FirstOrDefault();//根據(jù)用戶的編號(hào)查找用戶的信息if (userInfo != null){userInfo.RoleInfo.Clear();foreach (int roleId in roleIdList){var roleInfo = this.CurrentDBSession.RoleInfoDal.LoadEntities(r=>r.ID==roleId).FirstOrDefault();userInfo.RoleInfo.Add(roleInfo);}return this.CurrentDBSession.SaveChanges();}return false;}/// <summary>/// 完成用戶權(quán)限的分配/// </summary>/// <param name="actionId"></param>/// <param name="userId"></param>/// <param name="isPass"></param>/// <returns></returns>public bool SetUserActionInfo(int actionId, int userId, bool isPass){//判斷userId以前是否有了該actionId,如果有了只需要修改isPass狀態(tài),否則插入。var r_userInfo_actionInfo = this.CurrentDBSession.R_UserInfo_ActionInfoDal.LoadEntities(a=>a.ActionInfoID==actionId&&a.UserInfoID==userId).FirstOrDefault();if (r_userInfo_actionInfo == null){R_UserInfo_ActionInfo userInfoActionInfo = new R_UserInfo_ActionInfo();userInfoActionInfo.ActionInfoID = actionId;userInfoActionInfo.UserInfoID = userId;userInfoActionInfo.IsPass =isPass;this.CurrentDBSession.R_UserInfo_ActionInfoDal.AddEntity(userInfoActionInfo);}else{r_userInfo_actionInfo.IsPass = isPass;this.CurrentDBSession.R_UserInfo_ActionInfoDal.EditEntity(r_userInfo_actionInfo);}return this.CurrentDBSession.SaveChanges();}?
轉(zhuǎn)載于:https://www.cnblogs.com/xiaoliwang/p/7866700.html
總結(jié)
以上是生活随笔為你收集整理的MVC基于角色权限控制--用户管理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 30.IntellJ Idea 导入已存
- 下一篇: python数据挖掘Hello Worl