public void OnAuthorization(AuthorizationContext filterContext) { bool isAnonymousUser = false; var ctx = filterContext; if (ctx == null) { isAnonymousUser = true; } else { XnUserPrincipal user = ctx.HttpContext.User as XnUserPrincipal; if (user == null || !user.Identity.IsAuthenticated) { isAnonymousUser = true; } } if (isAnonymousUser) { #if DEBUG ctx.Result = new RedirectResult("http://login.Xn.dev/member/login?returnurl=" + HttpUtility.UrlEncode(ctx.RequestContext.HttpContext.Request.Url.AbsoluteUri)); #else ctx.Result = new RedirectResult("https://login.Xn.cn/member/login?returnurl=" + HttpUtility.UrlEncode(ctx.RequestContext.HttpContext.Request.Url.AbsoluteUri)); #endif } }
public void OnAuthorization(AuthorizationContext filterContext) { var ctx = filterContext; if (ctx == null) { throw new ArgumentNullException("filterContext"); } XnUserPrincipal user = ctx.HttpContext.User as XnUserPrincipal; if (user == null) { throw new ArgumentException("HttpContext.User is not XnUserPrincipal."); } if (!user.Identity.IsAuthenticated) { ctx.Result = new RedirectToRouteResult( new RouteValueDictionary { { "client", filterContext.RouteData.Values["client"] }, { "controller", "admin" }, { "action", "index" }, { "ReturnUrl", filterContext.HttpContext.Request.RawUrl } }); return; } var isAuthorized = false; var controller = ctx.RouteData.Values["controller"] as string; var action = ctx.RouteData.Values["action"] as string; isAuthorized = new RoleResourceService().IsRoleAuthorized(user.Identity.Name.AsInt(), controller, action); if (!isAuthorized) { UnauthorizeHandler(ctx); } }