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教程