示例#1
0
        /// <summary>
        /// The internal method to create signature.
        /// </summary>
        /// <param name="urlPath"></param>
        /// <param name="args"></param>
        /// <param name="appSecret"></param>
        /// <returns></returns>
        private static string InternalGetSignature(string urlPath, IDictionary <string, string> args, string appSecret)
        {
            string cleartext = urlPath + args.Where((item) => !string.IsNullOrWhiteSpace(item.Value)).Select((item) => item.Key + item.Value).OrderBy((item) => item, StringComparer.Ordinal).StringJoin(string.Empty);

            byte[] ciphertext = new HMACSHA1(Encoding.UTF8.GetBytes(appSecret)).ComputeHash(Encoding.UTF8.GetBytes(cleartext));
            return(ciphertext.StringJoin(string.Empty, (item) => item.ToString("X2")));
        }