/// <summary>
 /// Constructor user only for XACML 2.0
 /// </summary>
 /// <param name="resources">The resource.</param>
 /// <param name="action">The action.</param>
 /// <param name="subjects">The subject.</param>
 /// <param name="environment">The environment.</param>
 public XacmlContextRequest(XacmlContextResource resource, XacmlContextAction action, XacmlContextSubject subject, XacmlContextEnvironment environment) :
     this(new List<XacmlContextResource> { resource }, action, new List<XacmlContextSubject> { subject }, environment) {
     Contract.Requires<ArgumentNullException>(resource != null);
     Contract.Requires<ArgumentNullException>(action != null);
     Contract.Requires<ArgumentNullException>(subject != null);
     Contract.Requires<ArgumentNullException>(environment != null);
 }
        protected virtual void WriteContextEnvironment(XmlWriter writer, XacmlContextEnvironment xacmlContextEnvironment) {
            Contract.Requires<ArgumentNullException>(writer != null);
            Contract.Requires<ArgumentNullException>(xacmlContextEnvironment != null);

            writer.WriteStartElement(XacmlConstants.Prefixes.Context, XacmlConstants.ElementNames.Environment, this.version.NamespaceContext);

            foreach (var attr in xacmlContextEnvironment.Attributes) {
                this.WriteContextAttribute(writer, attr);
            }

            writer.WriteEndElement();
        }
        /// <summary>
        /// Constructor user only for XACML 2.0
        /// </summary>
        /// <param name="resources">The resources.</param>
        /// <param name="action">The action.</param>
        /// <param name="subjects">The subjects.</param>
        /// <param name="environment">The environment.</param>
        public XacmlContextRequest(IEnumerable<XacmlContextResource> resources, XacmlContextAction action, IEnumerable<XacmlContextSubject> subjects, XacmlContextEnvironment environment) {
            Contract.Requires<ArgumentNullException>(resources != null);
            Contract.Requires<ArgumentNullException>(action != null);
            Contract.Requires<ArgumentNullException>(subjects != null);
            Contract.Requires<ArgumentNullException>(environment != null);

            foreach (var item in resources) {
                this.resources.Add(item);
            }

            this.action = action;

            foreach (var item in subjects) {
                this.subjects.Add(item);
            }

            this.Environment = environment;
        }
        protected virtual XacmlContextEnvironment ReadContextEnvironment(XmlReader reader) {
            Contract.Requires<ArgumentNullException>(reader != null, "reader");
            Contract.Requires<XmlException>(reader.IsStartElement(XacmlConstants.ElementNames.Environment, this.version.NamespaceContext));

            XacmlContextEnvironment result = new XacmlContextEnvironment();
            // Read attributes

            if (reader.IsEmptyElement) {
                reader.Read();
                return result;
            }

            reader.ReadStartElement(XacmlConstants.ElementNames.Environment, this.version.NamespaceContext);
            // Read elements

            this.ReadList(result.Attributes, XacmlConstants.ElementNames.Attribute, this.version.NamespaceContext, this.ReadContextAttribute, reader, isRequired: false);

            reader.ReadEndElement();

            return result;
        }
Esempio n. 5
0
 /// <summary>
 /// Constructor user only for XACML 2.0
 /// </summary>
 /// <param name="resources">The resource.</param>
 /// <param name="action">The action.</param>
 /// <param name="subjects">The subject.</param>
 /// <param name="environment">The environment.</param>
 public XacmlContextRequest(XacmlContextResource resource, XacmlContextAction action, XacmlContextSubject subject, XacmlContextEnvironment environment)
     : this(new List <XacmlContextResource> {
     resource
 }, action, new List <XacmlContextSubject> {
     subject
 }, environment)
 {
 }
Esempio n. 6
0
        /// <summary>
        /// Constructor user only for XACML 2.0
        /// </summary>
        /// <param name="resources">The resources.</param>
        /// <param name="action">The action.</param>
        /// <param name="subjects">The subjects.</param>
        /// <param name="environment">The environment.</param>
        public XacmlContextRequest(IEnumerable <XacmlContextResource> resources, XacmlContextAction action, IEnumerable <XacmlContextSubject> subjects, XacmlContextEnvironment environment)
        {
            if (resources == null)
            {
                throw new ArgumentNullException(nameof(resources));
            }

            if (action == null)
            {
                throw new ArgumentNullException(nameof(action));
            }

            if (subjects == null)
            {
                throw new ArgumentNullException(nameof(subjects));
            }

            if (environment == null)
            {
                throw new ArgumentNullException(nameof(environment));
            }

            foreach (var item in resources)
            {
                this.resources.Add(item);
            }

            this.action = action;

            foreach (var item in subjects)
            {
                this.subjects.Add(item);
            }

            this.Environment = environment;
        }