コード例 #1
0
        private ISecurityExpressionRoot GetSecurityContext()
        {
            ISecurityExpressionRootFactory securityExpressionRootFactory = ContextRegistry.GetContext().GetObject <ISecurityExpressionRootFactory>();
            ISecurityExpressionRoot        securityExpressionRoot        = securityExpressionRootFactory.CreateSecurityExpressionRoot();

            return(securityExpressionRoot);
        }
コード例 #2
0
        private ISecurityExpressionRoot GetSecurityService()
        {
            ISecurityExpressionRootFactory securityService =
                ContextRegistry.GetContext().GetObject <ISecurityExpressionRootFactory>("webSecurityRootFactory");
            ISecurityExpressionRoot securityExpressionRoot = securityService.CreateSecurityExpressionRoot();

            return(securityExpressionRoot);
        }
コード例 #3
0
        /// <summary>
        ///     Stellt beim Überschreiben einen Einstiegspunkt für benutzerdefinierte Autorisierungs-Prüfungen bereit.
        /// </summary>
        /// <returns>
        ///     True, wenn der Benutzer autorisiert ist, andernfalls False.
        /// </returns>
        /// <param name="httpContext">
        ///     Der HTTP-Kontext, der alle HTTP-spezifischen Informationen über eine einzelne
        ///     HTTP-Anforderung kapselt.
        /// </param>
        /// <exception cref="T:System.ArgumentNullException">Der <paramref name="httpContext" />-Parameter ist null.</exception>
        protected virtual bool AuthorizeCore(HttpContextBase httpContext)
        {
            if (httpContext == null)
            {
                throw new ArgumentNullException("httpContext");
            }

            if (!httpContext.User.Identity.IsAuthenticated)
            {
                /*Es ist kein Nutzer angemeldet*/
                return(false);
            }

            ISecurityExpressionRoot securityExpressionRoot = GetSecurityContext();

            /* Wenn keine Rollen angegeben sind, muss der Nutzer nur authentifiziert sein. */
            if (_roles == null || _roles.Length == 0)
            {
                return(true);
            }

            return(securityExpressionRoot.HasAnyRole(_roles));
        }
コード例 #4
0
        public bool HasAnyRole(params string[] roles)
        {
            ISecurityExpressionRoot securityExpressionRoot = GetSecurityExpressionRoot();

            return(securityExpressionRoot.HasAnyRole(roles));
        }
コード例 #5
0
        public bool HasRole(string role)
        {
            ISecurityExpressionRoot securityExpressionRoot = GetSecurityExpressionRoot();

            return(securityExpressionRoot.HasRole(role));
        }
コード例 #6
0
        public bool IsAuthenticated()
        {
            ISecurityExpressionRoot securityExpressionRoot = GetSecurityExpressionRoot();

            return(securityExpressionRoot.IsAuthenticated());
        }