Ejemplo n.º 1
0
 internal static ReadOnlyCollection <IAuthorizationPolicy> CloneAuthorizationPoliciesIfNecessary(ReadOnlyCollection <IAuthorizationPolicy> authorizationPolicies)
 {
     if (authorizationPolicies != null && authorizationPolicies.Count > 0)
     {
         bool clone = false;
         for (int i = 0; i < authorizationPolicies.Count; ++i)
         {
             UnconditionalPolicy policy = authorizationPolicies[i] as UnconditionalPolicy;
             if (policy != null && policy.IsDisposable)
             {
                 clone = true;
                 break;
             }
         }
         if (clone)
         {
             List <IAuthorizationPolicy> ret = new List <IAuthorizationPolicy>(authorizationPolicies.Count);
             for (int i = 0; i < authorizationPolicies.Count; ++i)
             {
                 UnconditionalPolicy policy = authorizationPolicies[i] as UnconditionalPolicy;
                 if (policy != null)
                 {
                     ret.Add(policy.Clone());
                 }
                 else
                 {
                     ret.Add(authorizationPolicies[i]);
                 }
             }
             return(new ReadOnlyCollection <IAuthorizationPolicy>(ret));
         }
     }
     return(authorizationPolicies);
 }
Ejemplo n.º 2
0
        public SimpleAuthorizationContext(IList <IAuthorizationPolicy> authorizationPolicies)
        {
            _policy = (UnconditionalPolicy)authorizationPolicies[0];
            Dictionary <string, object> properties = new Dictionary <string, object>();

            if (_policy.PrimaryIdentity != null && _policy.PrimaryIdentity != SecurityUtils.AnonymousIdentity)
            {
                List <IIdentity> identities = new List <IIdentity>();
                identities.Add(_policy.PrimaryIdentity);
                properties.Add(SecurityUtils.Identities, identities);
            }

            _properties = properties;
        }
Ejemplo n.º 3
0
            public SimpleAuthorizationContext(IList <IAuthorizationPolicy> authorizationPolicies)
            {
                this.policy = (UnconditionalPolicy)authorizationPolicies[0];
                Dictionary <string, object> dictionary = new Dictionary <string, object>();

                if ((this.policy.PrimaryIdentity != null) && (this.policy.PrimaryIdentity != System.IdentityModel.SecurityUtils.AnonymousIdentity))
                {
                    List <IIdentity> list = new List <IIdentity> {
                        this.policy.PrimaryIdentity
                    };
                    dictionary.Add("Identities", list);
                }
                this.properties = dictionary;
            }
Ejemplo n.º 4
0
            public SimpleAuthorizationContext(IList <IAuthorizationPolicy> authorizationPolicies)
            {
                this.policy = (UnconditionalPolicy)authorizationPolicies[0];
                Dictionary <string, object> properties = new Dictionary <string, object>();

                if (this.policy.PrimaryIdentity != null && this.policy.PrimaryIdentity != SecurityUtils.AnonymousIdentity)
                {
                    List <IIdentity> identities = new List <IIdentity>();
                    identities.Add(this.policy.PrimaryIdentity);
                    properties.Add(SecurityUtils.Identities, identities);
                }
                // Might need to port ReadOnlyDictionary?
                this.properties = properties;
            }
Ejemplo n.º 5
0
        internal static ReadOnlyCollection <IAuthorizationPolicy> CloneAuthorizationPoliciesIfNecessary(ReadOnlyCollection <IAuthorizationPolicy> authorizationPolicies)
        {
            if ((authorizationPolicies == null) || (authorizationPolicies.Count <= 0))
            {
                return(authorizationPolicies);
            }
            bool flag = false;

            for (int i = 0; i < authorizationPolicies.Count; i++)
            {
                UnconditionalPolicy policy = authorizationPolicies[i] as UnconditionalPolicy;
                if ((policy != null) && policy.IsDisposable)
                {
                    flag = true;
                    break;
                }
            }
            if (!flag)
            {
                return(authorizationPolicies);
            }
            List <IAuthorizationPolicy> list = new List <IAuthorizationPolicy>(authorizationPolicies.Count);

            for (int j = 0; j < authorizationPolicies.Count; j++)
            {
                UnconditionalPolicy policy2 = authorizationPolicies[j] as UnconditionalPolicy;
                if (policy2 != null)
                {
                    list.Add(policy2.Clone());
                }
                else
                {
                    list.Add(authorizationPolicies[j]);
                }
            }
            return(list.AsReadOnly());
        }