コード例 #1
0
        public override void OnAuthorization(AuthorizationContext filterContext)
        {
            if (filterContext.SkipAuthorisation())
            {
                return;
            }

            var identity = (ClaimsIdentity)filterContext.HttpContext.User.Identity;
            var hasEmailVerifiedClaim = identity.HasClaim(c => c.Type.Equals(JwtClaimTypes.EmailVerified));

            if (hasEmailVerifiedClaim && identity.Claims.Single(c => c.Type.Equals(JwtClaimTypes.EmailVerified)).Value.Equals("false", StringComparison.InvariantCultureIgnoreCase))
            {
                bool userIsInternal = ((ClaimsIdentity)filterContext.HttpContext.User.Identity).HasClaim(
                    ClaimTypes.AuthenticationMethod, Claims.CanAccessInternalArea);

                if (userIsInternal)
                {
                    filterContext.Result = new RedirectResult("~/Admin/Account/AdminAccountActivationRequired");
                }
                else
                {
                    filterContext.Result = new RedirectResult("~/Account/UserAccountActivationRequired");
                }
            }
        }
コード例 #2
0
        public override void OnAuthorization(AuthorizationContext filterContext)
        {
            if (filterContext.IsChildAction || filterContext.SkipAuthorisation())
            {
                return;
            }

            var principal = (ClaimsPrincipal)filterContext.HttpContext.User;
            var identity  = (ClaimsIdentity)filterContext.HttpContext.User.Identity;

            if (!identity.IsAuthenticated)
            {
                return;
            }

            var organisationRegistered = identity.HasClaim(c => c.Type.Equals(ClaimTypes.OrganisationId));

            if (principal.IsInternalUser())
            {
                return;
            }

            if (!organisationRegistered)
            {
                filterContext.Result = new RedirectToRouteResult(
                    new RouteValueDictionary(new { controller = "Registration", action = "CreateNewOrganisation", area = string.Empty }));
            }
        }
コード例 #3
0
        public override void OnAuthorization(AuthorizationContext filterContext)
        {
            if (filterContext.SkipAuthorisation())
            {
                return;
            }

            var identity = (ClaimsIdentity)filterContext.HttpContext.User.Identity;
            var hasEmailVerifiedClaim = identity.HasClaim(c => c.Type.Equals(JwtClaimTypes.EmailVerified));

            if (hasEmailVerifiedClaim && identity.Claims.Single(c => c.Type.Equals(JwtClaimTypes.EmailVerified)).Value.Equals("false", StringComparison.InvariantCultureIgnoreCase))
            {
                bool userIsInternal = ((ClaimsIdentity)filterContext.HttpContext.User.Identity).HasClaim(
                    ClaimTypes.AuthenticationMethod, Claims.CanAccessInternalArea);

                if (userIsInternal)
                {
                    filterContext.Result = new RedirectResult("~/Admin/Account/AdminAccountActivationRequired");
                }
                else
                {
                    filterContext.Result = new RedirectResult("~/Account/UserAccountActivationRequired");
                }
            }
        }
コード例 #4
0
        public override void OnAuthorization(AuthorizationContext filterContext)
        {
            if (filterContext.IsChildAction || filterContext.SkipAuthorisation())
            {
                return;
            }

            var principal = (ClaimsPrincipal)filterContext.HttpContext.User;
            var identity = (ClaimsIdentity)filterContext.HttpContext.User.Identity;

            if (!identity.IsAuthenticated)
            {
                return;
            }

            var organisationRegistered = identity.HasClaim(c => c.Type.Equals(ClaimTypes.OrganisationId));

            if (principal.IsInternalUser())
            {
                return;
            }

            if (!organisationRegistered)
            {
                filterContext.Result = new RedirectToRouteResult(
                    new RouteValueDictionary(new { controller = "Registration", action = "CreateNewOrganisation", area = string.Empty }));
            }
        }
コード例 #5
0
        public override void OnAuthorization(AuthorizationContext filterContext)
        {
            if (filterContext.IsChildAction || filterContext.SkipAuthorisation())
            {
                return;
            }

            var principal = (ClaimsPrincipal)filterContext.HttpContext.User;

            if (!principal.IsInternalUser())
            {
                return;
            }

            RedirectInternalUser(filterContext, (ClaimsIdentity)principal.Identity);
        }
コード例 #6
0
        public override void OnAuthorization(AuthorizationContext filterContext)
        {
            if (filterContext.IsChildAction || filterContext.SkipAuthorisation())
            {
                return;
            }

            var principal = (ClaimsPrincipal)filterContext.HttpContext.User;
            var identity = (ClaimsIdentity)principal.Identity;

            var hasEmailVerifiedClaim = identity.HasClaim(c => c.Type.Equals(JwtClaimTypes.EmailVerified));

            if (hasEmailVerifiedClaim && identity.Claims.Any(c => 
                    c.Type.Equals(JwtClaimTypes.EmailVerified) 
                    && c.Value.Equals("false", StringComparison.InvariantCultureIgnoreCase)))                
            {
                var redirectAddress = principal.IsInternalUser() 
                    ? new RouteValueDictionary(new { controller = "Registration", action = "AdminEmailVerificationRequired", area = "Admin" })
                    : new RouteValueDictionary(new { controller = "Account", action = "EmailVerificationRequired", area = string.Empty });

                filterContext.Result = new RedirectToRouteResult(redirectAddress);
            }
        }
コード例 #7
0
        public override void OnAuthorization(AuthorizationContext filterContext)
        {
            if (filterContext.IsChildAction || filterContext.SkipAuthorisation())
            {
                return;
            }

            var principal = (ClaimsPrincipal)filterContext.HttpContext.User;
            var identity  = (ClaimsIdentity)principal.Identity;

            var hasEmailVerifiedClaim = identity.HasClaim(c => c.Type.Equals(JwtClaimTypes.EmailVerified));

            if (hasEmailVerifiedClaim && identity.Claims.Any(c =>
                                                             c.Type.Equals(JwtClaimTypes.EmailVerified) &&
                                                             c.Value.Equals("false", StringComparison.InvariantCultureIgnoreCase)))
            {
                var redirectAddress = principal.IsInternalUser()
                    ? new RouteValueDictionary(new { controller = "Registration", action = "AdminEmailVerificationRequired", area = "Admin" })
                    : new RouteValueDictionary(new { controller = "Account", action = "EmailVerificationRequired", area = string.Empty });

                filterContext.Result = new RedirectToRouteResult(redirectAddress);
            }
        }