Ejemplo n.º 1
0
        internal static UriQueryBuilder GetSignature(SharedAccessAccountPolicy policy, string signature, string accountKeyName, string sasVersion)
        {
            CommonUtility.AssertNotNull("signature", signature);
            CommonUtility.AssertNotNull("policy", policy);
            UriQueryBuilder uriQueryBuilder = new UriQueryBuilder();

            AddEscapedIfNotNull(uriQueryBuilder, "sv", sasVersion);
            AddEscapedIfNotNull(uriQueryBuilder, "sk", accountKeyName);
            AddEscapedIfNotNull(uriQueryBuilder, "sig", signature);
            AddEscapedIfNotNull(uriQueryBuilder, "spr", (!policy.Protocols.HasValue) ? null : GetProtocolString(policy.Protocols.Value));
            AddEscapedIfNotNull(uriQueryBuilder, "sip", (policy.IPAddressOrRange == null) ? null : policy.IPAddressOrRange.ToString());
            AddEscapedIfNotNull(uriQueryBuilder, "st", GetDateTimeOrNull(policy.SharedAccessStartTime));
            AddEscapedIfNotNull(uriQueryBuilder, "se", GetDateTimeOrNull(policy.SharedAccessExpiryTime));
            string value = SharedAccessAccountPolicy.ResourceTypesToString(policy.ResourceTypes);

            if (!string.IsNullOrEmpty(value))
            {
                AddEscapedIfNotNull(uriQueryBuilder, "srt", value);
            }
            string value2 = SharedAccessAccountPolicy.ServicesToString(policy.Services);

            if (!string.IsNullOrEmpty(value2))
            {
                AddEscapedIfNotNull(uriQueryBuilder, "ss", value2);
            }
            string value3 = SharedAccessAccountPolicy.PermissionsToString(policy.Permissions);

            if (!string.IsNullOrEmpty(value3))
            {
                AddEscapedIfNotNull(uriQueryBuilder, "sp", value3);
            }
            return(uriQueryBuilder);
        }
Ejemplo n.º 2
0
        internal static string GetHash(SharedAccessAccountPolicy policy, string accountName, string sasVersion, string keyValue)
        {
            string text = string.Format(CultureInfo.InvariantCulture, "{0}\n{1}\n{2}\n{3}\n{4}\n{5}\n{6}\n{7}\n{8}\n{9}", accountName, SharedAccessAccountPolicy.PermissionsToString(policy.Permissions), SharedAccessAccountPolicy.ServicesToString(policy.Services), SharedAccessAccountPolicy.ResourceTypesToString(policy.ResourceTypes), GetDateTimeOrEmpty(policy.SharedAccessStartTime), GetDateTimeOrEmpty(policy.SharedAccessExpiryTime), (policy.IPAddressOrRange == null) ? string.Empty : policy.IPAddressOrRange.ToString(), GetProtocolString(policy.Protocols), sasVersion, string.Empty);

            Logger.LogVerbose(null, "StringToSign = {0}.", text);
            return(CryptoUtility.ComputeHmac256(keyValue, text));
        }