咨询
技术
吉林市柏霖网络公司,吉林市网络公司,吉林市网站建设,吉林市网站制作,吉林市网页设计,吉林市小程序开发,吉林市小程序制作,吉林市微信小程序,吉林市微信公众号,吉林市软件公司,吉林市软件开发,吉林市软件制作,吉林市做网站哪家好
吉林市网站制作与建设
 您当前的位置:  首页 > 帮助中心 > 网站制作与建设
吉林市柏霖网络公司专业从事网站建设、网站制作、吉林市网站推广优化、网页设计、及一体的网站建设公司,为您完美打造一流网站,做吉林市最好的网站。咨询电话:043264678108

吉林市ASP.NET MVC3文件夹作用及实现自定义权限判定

来源:原创文章   发布于:2024/10/14 10:00:00   编辑:吉林市软件开发,吉林市网站建设,吉林市网站制作   点击量:

Asp.Net MVC3中各个文件夹的作用


文件夹   作用

/Controllers   存放控制器类【职责是:处理用户的请求,指挥具体的页面进行渲染交给客户端】

/Views   存放各个控制器对应的视图文件,如果是Razor引擎的话那后缀是cshtml.如果使用的WebFrom的视图引擎的话,那还是Aspx后缀。

/Content   主要存放照片、CSS、Flash等文件

/Scripts   主要存放脚本文件【微软默认给我们提供了JQuery1.5.1的包,看来JQuery已经成为默认的工业标准了!我们没有退路了,呵呵,当然我个人也非常喜欢JQuery】

/Models   主要存放ViewModel类【当然这个不是严格这样要求的,而是推荐你这么做。】

ASP.NET本身拥有membership角色权限系统,但是这个自带的系统不够灵活和强大,有时候操作起来比较繁琐,在这里品锐网络介绍一种如何根据控制器和方法自动判定权限,简单方便。

首先是定义一个类继承ActionFilterAttribute类,然后重新方法OnActionExecuting  编写如下代码

   ;  public override void OnActionExecuting(ActionExecutingContext filterContext)

   ;  {
   ;  ;   if (!filterContext.HttpContext.User.Identity.IsAuthenticated)
   ;  ;   {
   ;   ;  //没有登录执行的操作
   ;  ;   }
   ;  ;   else
   ;  ;   {
  ;
   ;   ;  //判断是否存在角色
   ;   ;  FormsIdentity user = (FormsIdentity)HttpContext.Current.User.Identity;
 
   ;   ;  var au = db.AdminUser.Where(a => a.username == user.Name).ToList();
   ;   ;  if (au.Count > 0)
   ;   ;  {
   ;   ;   ;  // string purview= au[0].group.purview;
   ;   ;   ;  bool is_authorize = true;
   ;   ;   ;  string error_msg = "没有权限访问!";
   ;   ;   ;  string model = filterContext.RouteData.Values["controller"].ToString();
   ;   ;   ;  string action = filterContext.RouteData.Values["action"].ToString();
 
   ;   ;   ;  BLLAdminUser admin_user = new BLLAdminUser();
   ;   ;   ;  string purview=admin_user.getCheckPurview(model, action);//判断权限
   ;   ;   ;  string mypurview = admin_user.getMyPurview();
   ;   ;   ;  is_authorize=admin_user.inPurview(purview, mypurview);
   ;   ;   ;  if (!is_authorize)
   ;   ;   ;  {
   ;   ;   ;   ; //如果验证不通过执行的方法
   ;   ;   ;  }
 
   ;   ;  }
 
   ;  ;   }
   ;  ; 
   ;  }

  然后在控制器或方法前面加上[Authorize]验证标记就行了。