コード例 #1
0
        /// <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);
        }
コード例 #2
0
        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());
        }
コード例 #3
0
 /// <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;
 }
コード例 #4
0
        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();
        }