/// <summary> /// Get the REST requests relative address (for HTTP request message) /// </summary> /// <param name="client">REST client</param> /// <param name="request">REST request</param> /// <returns>The relative request message URL</returns> protected virtual Uri GetMessageAddress(IRestClient client, IRestRequest request) { var fullUrl = client.BuildUrl(request); var url = client.BaseUrl.MakeRelativeUri(fullUrl); return(url); }
private string GetDigestHeader(IRestClient client, IRestRequest restRequest) { _nc = _nc + 1; var uri = client.BuildUrl(restRequest); var credential = _credentials.GetCredential(uri, "Digest"); var pathAndQuery = uri.GetComponents(UriComponents.PathAndQuery, UriFormat.SafeUnescaped); var ha1 = CalculateMd5Hash(string.Format("{0}:{1}:{2}", credential.UserName, _realm, credential.Password)); var ha2 = CalculateMd5Hash(string.Format("{0}:{1}", restRequest.GetEffectiveHttpMethod().Method, pathAndQuery)); var digestResponse = CalculateMd5Hash(string.Format("{0}:{1}:{2:00000000}:{3}:{4}:{5}", ha1, _nonce, _nc, _cnonce, _qop, ha2)); var result = new StringBuilder(); result .AppendFormat("Digest username=\"{0}\"", credential.UserName) .AppendFormat(",realm=\"{0}\"", _realm) .AppendFormat(",nonce=\"{0}\"", _nonce) .AppendFormat(",uri=\"{0}\"", pathAndQuery) .AppendFormat(",algorithm=\"{0}\"", "MD5") .AppendFormat(",cnonce=\"{0}\"", _cnonce) .AppendFormat(",nc={0:D08}", _nc) .AppendFormat(",qop=\"{0}\"", _qop); if (!string.IsNullOrEmpty(_opaque)) { result .AppendFormat(",opaque=\"{0}\"", _opaque); } result .AppendFormat(",response=\"{0}\"", digestResponse); return(result.ToString()); }
/// <summary> /// Get the REST requests relative address (for HTTP request message) /// </summary> /// <param name="client">REST client</param> /// <param name="request">REST request</param> /// <returns>The relative request message URL</returns> protected virtual Uri GetMessageAddress(IRestClient client, IRestRequest request) { var fullUrl = client.BuildUrl(request); var url = client.BaseUrl.MakeRelativeUri(fullUrl); return url; }
private string GetDigestHeader(IRestClient client, IRestRequest restRequest) { _nc = _nc + 1; var uri = client.BuildUrl(restRequest); var credential = _credentials.GetCredential(uri, "Digest"); var pathAndQuery = uri.GetComponents(UriComponents.PathAndQuery, UriFormat.SafeUnescaped); var ha1 = CalculateMd5Hash(string.Format("{0}:{1}:{2}", credential.UserName, _realm, credential.Password)); var ha2 = CalculateMd5Hash(string.Format("{0}:{1}", restRequest.GetEffectiveHttpMethod().Method, pathAndQuery)); var digestResponse = CalculateMd5Hash(string.Format("{0}:{1}:{2:00000000}:{3}:{4}:{5}", ha1, _nonce, _nc, _cnonce, _qop, ha2)); var result = new StringBuilder(); result .AppendFormat("Digest username=\"{0}\"", credential.UserName) .AppendFormat(",realm=\"{0}\"", _realm) .AppendFormat(",nonce=\"{0}\"", _nonce) .AppendFormat(",uri=\"{0}\"", pathAndQuery) .AppendFormat(",algorithm=\"{0}\"", "MD5") .AppendFormat(",cnonce=\"{0}\"", _cnonce) .AppendFormat(",nc={0:D08}", _nc) .AppendFormat(",qop=\"{0}\"", _qop); if (!string.IsNullOrEmpty(_opaque)) result .AppendFormat(",opaque=\"{0}\"", _opaque); result .AppendFormat(",response=\"{0}\"", digestResponse); return result.ToString(); }