/// <summary> /// sign请求 /// </summary> /// <param name="request"></param> /// <param name="type"></param> /// <param name="uCloudConfig"></param> /// <param name="key"></param> /// <returns></returns> internal static string SignRequst(HttpWebRequest request, Utils.RequestHeadType type, UCloudStorageConfig uCloudConfig, string key) { string authorization = string.Empty; string stringToSign = string.Empty; switch (type) { case Utils.RequestHeadType.HEAD_FIELD_CHECK: authorization += "UCloud "; authorization += uCloudConfig.UCloudPublicKey; authorization += ":"; stringToSign = request.Method + "\n" + request.Headers.Get("Content-MD5") + "\n"; stringToSign += request.ContentType; stringToSign += "\n"; stringToSign += "\n"; stringToSign += CanonicalizedUCloudHeaders(request.Headers); stringToSign += CanonicalizedResource(uCloudConfig.Bucket, key); break; default: break; } HMACSHA1 hmac = new HMACSHA1(Encoding.ASCII.GetBytes(uCloudConfig.UCloudPrivateKey)); Byte[] hashValue = hmac.ComputeHash(Encoding.UTF8.GetBytes(stringToSign)); string signature = Convert.ToBase64String(hashValue); return(authorization + signature); }
public static string SignRequst(HttpWebRequest request, Utils.RequestHeadType type, string bucket, string key) { string Authorization = string.Empty; string StringToSign = string.Empty; switch (type) { case Utils.RequestHeadType.HEAD_FIELD_CHECK: Authorization += "UCloud "; Authorization += Config.UCLOUD_PUBLIC_KEY; Authorization += ":"; StringToSign = request.Method + "\n" + request.Headers.Get("Content-MD5") + "\n"; StringToSign += request.ContentType; StringToSign += "\n"; /* * StringToSign += DateTime.Now.ToString (); */ StringToSign += "\n"; StringToSign += CanonicalizedUCloudHeaders(request.Headers); StringToSign += CanonicalizedResource(bucket, key); break; default: break; } HMACSHA1 hmac = new HMACSHA1(Encoding.ASCII.GetBytes(Config.UCLOUD_PRIVATE_KEY)); Byte[] hashValue = hmac.ComputeHash(Encoding.UTF8.GetBytes(StringToSign)); string Signature = Convert.ToBase64String(hashValue); return(Authorization + Signature); }