protected override void EncodeEntry(Uri uri, object obj, SASIdentifier sasIdentifier, XmlWriter xmlWriter) { xmlWriter.WriteStartElement("SignedIdentifier"); xmlWriter.WriteElementString("Id", sasIdentifier.Id); if (sasIdentifier.AccessPolicy.SignedStart.HasValue || sasIdentifier.AccessPolicy.SignedExpiry.HasValue || sasIdentifier.AccessPolicy.SignedPermission.HasValue) { xmlWriter.WriteStartElement("AccessPolicy"); if (sasIdentifier.AccessPolicy.SignedStart.HasValue) { DateTime?signedStart = sasIdentifier.AccessPolicy.SignedStart; xmlWriter.WriteElementString("Start", SASUtilities.EncodeTime(signedStart.Value)); } if (sasIdentifier.AccessPolicy.SignedExpiry.HasValue) { DateTime?signedExpiry = sasIdentifier.AccessPolicy.SignedExpiry; xmlWriter.WriteElementString("Expiry", SASUtilities.EncodeTime(signedExpiry.Value)); } if (sasIdentifier.AccessPolicy.SignedPermission.HasValue) { xmlWriter.WriteElementString("Permission", (this.encodeSASPermissionWithOrder ? SASUtilities.EncodeSASPermissionWithOrder(sasIdentifier.AccessPolicy.SignedPermission.Value) : SASUtilities.EncodeSASPermission(sasIdentifier.AccessPolicy.SignedPermission.Value))); } xmlWriter.WriteEndElement(); } xmlWriter.WriteEndElement(); }
public void ToNameValues(out NameValueCollection nameValues) { nameValues = new NameValueCollection(); if (VersioningHelper.IsPreSeptember09OrInvalidVersion(this.version)) { bool publicAccess = this.PublicAccess; nameValues.Add("PublicAccess", publicAccess.ToString(CultureInfo.InvariantCulture)); } else if (!string.IsNullOrEmpty(this.publicAccessLevel)) { nameValues.Add("PublicAccess1", this.publicAccessLevel.ToString(CultureInfo.InvariantCulture)); } nameValues.Add("SASIdentifiers", SASUtilities.EncodeSASIdentifiers(this.sasIdentifiers)); }
protected BaseAclSettings(byte[] serviceMetadata) { if (serviceMetadata != null) { NameValueCollection nameValueCollection = new NameValueCollection(); MetadataEncoding.Decode(serviceMetadata, nameValueCollection); string str = nameValueCollection.Get("PublicAccess"); string str1 = nameValueCollection.Get("PublicAccess1"); string str2 = nameValueCollection.Get("SASIdentifiers"); if (str != null) { this.publicAccessLevel = str; } else if (str1 != null) { this.publicAccessLevel = str1; } if (!string.IsNullOrEmpty(str2)) { this.sasIdentifiers = SASUtilities.DecodeSASIdentifiers(str2); } } }