返回

MVC4统一验证用户登陆和权限

2014-07-06 MVC4 AuthorizeAttribute 2170 0

我们可以自己写个类,用来做登陆权限验证,例如创建一个WebAuth.cs类,继承AuthorizeAttribute类,

在该类中重写方法:

public override void OnAuthorization(AuthorizationContext filterContext)

        {

            base.OnAuthorization(filterContext);

        }

我们按照微软官方的这个特性,重写一个属于自己的验证特性类就行了。

例如在方法体内我们判断是否存在session,如果不存在就跳转到登陆页面:

public override void OnAuthorization(AuthorizationContext filterContext)

        {

            if (filterContext.HttpContext.Session["userid"] == null) {

                filterContext.Result = new RedirectResult("~/Default1/Login");

                //注意

                //不可以使用下面的写法,使用下面的写法,执行完下面的语句后依然会继续执行controller内的方法,会产生安全性问题

                //filterContext.HttpContext.Response.Redirect("~/Default1/Login");

            }

        }

写完保存后在controller里直接给要做验证的controller或action打上标签就可以了:

[WebAuth]

    public class Default1Controller : Controller

    {

        //

        // GET: /Default1/

        public ActionResult Index()

        {

            string aa = string.Empty;

            return View();

        }

 

    }

或者

[WebAuth]

 public ActionResult Index()

        {

            string aa = string.Empty;

            return View();

        }

当然你也可以写一个父controller打上标签,然后需要鉴权的都继承它即可。

您可能感兴趣:

阿里云 云服务器 99元1年 2核2G 3M固定带宽 续费与新购同价

DOVE 网络加速器免费试用

顶部