public bool IsValid(IHeaderDictionary requestHeaders, string topicKey) { if (requestHeaders .Any(h => string.Equals("aeg-sas-key", h.Key, StringComparison.OrdinalIgnoreCase))) { if (!string.Equals(requestHeaders["aeg-sas-key"], topicKey)) { _logger.LogError("'aeg-sas-key' value did not match configured value!"); return(false); } _logger.LogDebug("'aeg-sas-key' header is valid"); return(true); } if (requestHeaders .Any(h => string.Equals("aeg-sas-token", h.Key, StringComparison.OrdinalIgnoreCase))) { var token = requestHeaders["aeg-sas-token"]; if (!TokenIsValid(token, topicKey)) { _logger.LogError("'aeg-sas-key' value did not match configured value!"); return(false); } _logger.LogDebug("'aeg-sas-token' header is valid"); return(true); } return(false); }
public static long DetermineByteEndFromHeaders(IHeaderDictionary headers, long fileLength) { var defaultFileLength = fileLength - 1; if (headers == null || !headers.Any(x => x.Key == "Range")) { return(defaultFileLength); } long? result = null; var rangeHeader = headers["Range"]; string rangeEnd = null; var rangeBegin = rangeHeader.FirstOrDefault(); if (!string.IsNullOrEmpty(rangeBegin)) { //bytes=0- rangeBegin = rangeBegin.Replace("bytes=", ""); var parts = rangeBegin.Split('-'); rangeBegin = parts[0]; if (parts.Length > 1) { rangeEnd = parts[1]; } if (!string.IsNullOrEmpty(rangeEnd)) { result = long.TryParse(rangeEnd, out long outValue) ? (int?)outValue : null; } } return(result ?? defaultFileLength); }
public static long DetermineByteStartFromHeaders(IHeaderDictionary headers) { if (headers == null || !headers.Any(x => x.Key == "Range")) { return(0); } long result = 0; var rangeHeader = headers["Range"]; var rangeBegin = rangeHeader.FirstOrDefault(); if (!string.IsNullOrEmpty(rangeBegin)) { //bytes=0- rangeBegin = rangeBegin.Replace("bytes=", ""); var parts = rangeBegin.Split('-'); rangeBegin = parts[0]; if (!string.IsNullOrEmpty(rangeBegin)) { long.TryParse(rangeBegin, out result); } } return(result); }
public static async Task WriteResponseAsync(this HttpResponse response, HttpStatusCode statusCode = HttpStatusCode.OK, string errorMsg = "OK", object data = null, IHeaderDictionary headers = null, string contentType = "application/json") { response.StatusCode = (int)statusCode; response.ContentType = contentType; if (headers != null && headers.Any()) { foreach (var(key, value) in headers) { response.Headers[key] = value; } } string result; if (statusCode == HttpStatusCode.OK) { result = data == null ? JsonSerializer.Serialize(new { errmsg = "OK" }) : JsonSerializer.Serialize(data, new JsonSerializerOptions { IgnoreNullValues = true }); } else { result = data == null ? JsonSerializer.Serialize(new { errmsg = errorMsg }) : JsonSerializer.Serialize(new { errmsg = errorMsg, data }, new JsonSerializerOptions { IgnoreNullValues = true }); } await response.WriteAsync(result); }
public FeedbackCreateModel Create(string requestBody, IHeaderDictionary headers, Guid?sessionId) { var ratingModel = JsonConvert.DeserializeObject <RatingModel>(requestBody ?? string.Empty); var model = new FeedbackCreateModel() { SessionId = sessionId }; if (!String.IsNullOrEmpty(ratingModel?.Rating)) { if (byte.TryParse(ratingModel.Rating, out var ratingValue)) { model.Rating = ratingValue; } } if (headers != null && headers.Any() && headers.TryGetValue(UserIdHeaderName, out var headerValue)) { var strUserId = headerValue.FirstOrDefault(); if (!String.IsNullOrEmpty(strUserId)) { if (Guid.TryParse(strUserId, out var userId)) { model.UserId = userId; } } } return(model); }
public bool IsValid(IHeaderDictionary requestHeaders, string topicKey) { if (requestHeaders .Any(h => string.Equals(Constants.AegSasKeyHeader, h.Key, StringComparison.OrdinalIgnoreCase))) { if (!string.Equals(requestHeaders[Constants.AegSasKeyHeader], topicKey)) { _logger.LogError("'aeg-sas-key' value did not match the expected value!"); return(false); } _logger.LogTrace("'aeg-sas-key' header is valid"); return(true); } if (requestHeaders .Any(h => string.Equals(Constants.AegSasTokenHeader, h.Key, StringComparison.OrdinalIgnoreCase))) { var token = requestHeaders[Constants.AegSasTokenHeader].First(); if (!TokenIsValid(token, topicKey)) { _logger.LogError("'aeg-sas-token' value did not match the expected value!"); return(false); } _logger.LogTrace("'aeg-sas-token' header is valid"); return(true); } if (requestHeaders .Any(h => string.Equals(HeaderNames.Authorization, h.Key, StringComparison.OrdinalIgnoreCase))) { var token = requestHeaders[HeaderNames.Authorization].ToString(); if (token.StartsWith(Constants.SasAuthorizationType) && !TokenIsValid(token.Replace(Constants.SasAuthorizationType, "").Trim(), topicKey)) { _logger.LogError("'Authorization: SharedAccessSignature' value did not match the expected value!"); return(false); } _logger.LogTrace("'Authorization: SharedAccessSignature' header is valid"); return(true); } return(false); }
private static string GetHeaderTraceString(IHeaderDictionary headers) { return(headers == null || !headers.Any() ? null : string.Join(",", headers.Select( header => string.Format("{0}='{1}'", header.Key, string.Join(",", header.Value.Any() ? header.Value.ToString() : string.Empty) .Limit(MaxHeaderLength))))); }
public static Guid GetHeaderValuesGuid(IHeaderDictionary headers, string traceHeaderName) { if (headers.Any(traceRequestHeader => traceHeaderName.Equals(traceRequestHeader.Key.ToLower()))) { return(Guid.NewGuid()); } var headerValueAsString = GetHeaderValue(traceHeaderName, headers); Guid headerValue = Guid.TryParse(headerValueAsString, out headerValue) ? headerValue : Guid.Empty; return(headerValue); }
/// <summary> /// Get signature from header /// </summary> /// <param name="headers"></param> /// <param name="headerName"></param> /// <returns></returns> public static string GetSignature(this IHeaderDictionary headers, string headerName = "x-hub-signature") { var defaultReturn = ""; try { if (!headers.Any(r => r.Key.ToLower() == headerName.ToLowerInvariant())) { return(defaultReturn); } return(headers.First(r => r.Key.ToLower() == headerName.ToLowerInvariant()).Value.ToString()); } catch (Exception) { return(defaultReturn); } }
private static bool HasNegotiateAuthHeader(IHeaderDictionary headers) { return(headers.Any( h => h.Key.ToLowerInvariant() == "authorization" && h.Value[0].ToLowerInvariant().StartsWith("negotiate"))); }