コード例 #1
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));
        }
コード例 #2
0
        public bool HasAnyRole(params string[] roles)
        {
            ISecurityExpressionRoot securityExpressionRoot = GetSecurityExpressionRoot();

            return(securityExpressionRoot.HasAnyRole(roles));
        }