• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ASP.NETMVC权限验证

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

在WEB FORM 里可以写一个通用类继承自Page类,在其Page_Load()事件中对session进行验证。

而在MVC中可以使用C#的"特性"(或者叫过滤器)来进行身份验证。

自定义一个过滤器,重写其OnActionExecuting(ActionExecutingContext)方法。该方法是在Action执行之前先进行验证。

public class LoginFilter : System.Web.Mvc.ActionFilterAttribute
{
    public override void OnActionExecuting(System.Web.Mvc.ActionExecutingContext
       filterContext)
    {
        if (filterContext.HttpContext.Session["admin"] == null)
        {
            filterContext.HttpContext.Response.Redirect("/Console/Login");
        }
    }
}

 

然后在需要登录的Action上面加上该过滤器即可。

[LoginFilter]
public ActionResult Main()
{
    //do somthing
    return View();
}

 

Controller的Filter
Monorail中的Filter是可以使用在Controller中的,这给编程者带来了很多方便,那么在Asp.net MVC中可不可以使用Controller级的Filter呢.不言自喻.

实现方法如下Controller本身也有OnActionExecuting与OnActionExecuted方法 ,将之重写即可,见代码

using System.Web.Mvc;
    public class EiceController : Controller
    {
        public void Index() {        this.HttpContext.Session["temp"] += "Action<br/>";
 
            RenderView("Index");
        }
        public void Index2() {
             
            RenderView("Index");
        }
        protected override void OnActionExecuting(FilterExecutingContext
           filterContext) {
            filterContext.HttpContext.Session["temp"] += "OnActionExecuting<br/>";
        }
 
        protected override void OnActionExecuted(FilterExecutedContext
            filterContext) {
            filterContext.HttpContext.Session["temp"] += "OnActionExecuted<br/>";
        }
    }

注意两个方法是protected 的签名。

 

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
ASP.NETCore中的依赖注入【下】发布时间:2022-07-10
下一篇:
Asp.NetRepeater的两层嵌套以及遍历取值的简单实现发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap