public static bool TryParse(string input, out ApiRequestSignature parsedValue) { parsedValue = null; var success = false; if (input != null) { var parts = input.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries); if (parts.Length == 3) { if (parts[2].Length == 64) { DateTime timestamp; if (DateTime.TryParseExact( parts[1], "o", CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal, out timestamp)) { parsedValue = new ApiRequestSignature { AppId = parts[0], TimestampString = parts[1], Hash = parts[2], Timestamp = timestamp, }; success = true; } } } } return(success); }
/// <summary> /// Processes an HTTP request message. /// </summary> /// <param name="request">The HTTP request message to process.</param> /// <param name="cancellationToken"> /// A cancellation token that can be used by other objects or threads to receive notice of /// cancellation. /// </param> /// <returns> /// Returns <see cref="T:System.Net.Http.HttpRequestMessage" />.The HTTP request message that was processed. /// </returns> protected override HttpRequestMessage ProcessRequest( HttpRequestMessage request, CancellationToken cancellationToken) { var signature = new ApiRequestSignature { AppId = _appId }; var parameters = new[] { new NameValuePair(null, _appId), new NameValuePair(null, signature.TimestampString) }; signature.Hash = HmacUtility.GetHashString(key => new HMACSHA256(key), _secretKey, parameters); request.Headers.Authorization = new AuthenticationHeaderValue("HMACSHA256", signature.ToString()); return request; }
/// <summary> /// Processes an HTTP request message. /// </summary> /// <param name="request">The HTTP request message to process.</param> /// <param name="cancellationToken"> /// A cancellation token that can be used by other objects or threads to receive notice of /// cancellation. /// </param> /// <returns> /// Returns <see cref="T:System.Net.Http.HttpRequestMessage" />.The HTTP request message that was processed. /// </returns> protected override HttpRequestMessage ProcessRequest( HttpRequestMessage request, CancellationToken cancellationToken) { var signature = new ApiRequestSignature { AppId = _appId }; var parameters = new[] { new NameValuePair(null, _appId), new NameValuePair(null, signature.TimestampString) }; signature.Hash = HmacUtility.GetHashString(key => new HMACSHA256(key), _secretKey, parameters); request.Headers.Authorization = new AuthenticationHeaderValue("HMACSHA256", signature.ToString()); return(request); }
public static bool TryParse(string input, out ApiRequestSignature parsedValue) { parsedValue = null; var success = false; if (input != null) { var parts = input.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries); if (parts.Length == 3) { if (parts[2].Length == 64) { DateTime timestamp; if (DateTime.TryParseExact( parts[1], "o", CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal, out timestamp)) { parsedValue = new ApiRequestSignature { AppId = parts[0], TimestampString = parts[1], Hash = parts[2], Timestamp = timestamp, }; success = true; } } } } return success; }