天天看點

Asp.net MVC 權限驗證,以及是否允許匿名通路

public class CheckUserAttribute : ActionFilterAttribute, IAuthorizationFilter
    {
        public void OnAuthorization(AuthorizationContext context)
        {
            if (this.IsAnonymousAction(context)) //是否允許匿名使用者通路 [AllowAnonymous]
            {
                return;
            }

            if (context.HttpContext.Session["currentUserId"] == null)
            {
                    context.Result = new RedirectToRouteResult(
                    new RouteValueDictionary{
                        { "controller", "Error"},
                        { "action", "NotAuthorized"}
                    });
            }
        }

        #region private method

        private bool IsAnonymousAction(AuthorizationContext filterContext)
        {
            return filterContext.ActionDescriptor
                                 .GetCustomAttributes(inherit: true)
                                 .OfType<AllowAnonymousAttribute>()
                                 .Any();
        }

        #endregion

    }      

你好,這是 Leco's 開發筆記,轉載請注明出處:http://www.cnblogs.com/leco

上一篇: EF join