public NegotiationToken GetToken()
        {
            WebRequest request = WebRequest.Create(requestUri);
            request.Method = "POST";

            Nonce nonce = Nonce.Generate();
            TimeStamp timestamp = TimeStamp.Generate();

            BaseString baseString = new BaseString(request.RequestUri,
                request.Method, nonce, timestamp, credentials, HmacSha1Signature.MethodName);

            Signature signature = new HmacSha1Signature(baseString.ToString(), credentials);

            AuthorizationHeader header = new AuthorizationHeader(credentials, nonce, timestamp, signature);

            request.Headers.Add(HttpRequestHeader.Authorization, header.ToString());

            using (WebResponse res = request.GetResponse())
            using (Stream s = res.GetResponseStream())
            using (StreamReader sr = new StreamReader(s))
            {
                NameValueCollection response = HttpUtility.ParseQueryString(sr.ReadToEnd());
                return new NegotiationToken(response["oauth_token"], response["oauth_token_secret"]);
            }
        }
        public void ConvertingAuthorizationHeaderToString()
        {
            AuthorizationHeader header = new AuthorizationHeader(credentials, nonce, timestamp, signature);

            string headerContent = header.ToString();

            Assert.That(headerContent, Is.StringStarting(OAUTH_REALM));
            Assert.That(headerContent, Contains.Substring(OAUTH_CONSUMER_KEY));
            Assert.That(headerContent, Contains.Substring(OAUTH_SIGNATURE_METHOD));
            Assert.That(headerContent, Contains.Substring(OAUTH_NONCE));
            Assert.That(headerContent, Contains.Substring(OAUTH_TIMESTAMP));
            Assert.That(headerContent, Contains.Substring(OAUTH_SIGNATURE));
        }
        public void ConvertingAuthorizationHeaderToString()
        {
            AuthorizationHeader header = new AuthorizationHeader(credentials, nonce, timestamp, signature);

            string headerContent = header.ToString();

            Assert.That(headerContent, Is.StringStarting(OAUTH_REALM));
            Assert.That(headerContent, Contains.Substring(OAUTH_CONSUMER_KEY));
            Assert.That(headerContent, Contains.Substring(OAUTH_SIGNATURE_METHOD));
            Assert.That(headerContent, Contains.Substring(OAUTH_NONCE));
            Assert.That(headerContent, Contains.Substring(OAUTH_TIMESTAMP));
            Assert.That(headerContent, Contains.Substring(OAUTH_SIGNATURE));
        }
        public void ConvertingAuthorizationHeaderWithAccessTokenAndVerifierCodeToString()
        {
            AuthorizationHeader header = new AuthorizationHeader(credentials, nonce, timestamp, signature);
            header.VerifierCode = VERIFIER_CODE;
            header.Token = token;

            string headerContent = header.ToString();

            Assert.That(headerContent, Is.StringStarting(OAUTH_REALM));
            Assert.That(headerContent, Contains.Substring(OAUTH_CONSUMER_KEY));
            Assert.That(headerContent, Contains.Substring(OAUTH_SIGNATURE_METHOD));
            Assert.That(headerContent, Contains.Substring(OAUTH_NONCE));
            Assert.That(headerContent, Contains.Substring(OAUTH_TIMESTAMP));
            Assert.That(headerContent, Contains.Substring(OAUTH_SIGNATURE));
            Assert.That(headerContent, Contains.Substring(OAUTH_TOKEN));
            Assert.That(headerContent, Contains.Substring(OAUTH_VERIFIER));
        }
        public void ConvertingAuthorizationHeaderWithAccessTokenAndVerifierCodeToString()
        {
            AuthorizationHeader header = new AuthorizationHeader(credentials, nonce, timestamp, signature);

            header.VerifierCode = VERIFIER_CODE;
            header.Token        = token;

            string headerContent = header.ToString();

            Assert.That(headerContent, Is.StringStarting(OAUTH_REALM));
            Assert.That(headerContent, Contains.Substring(OAUTH_CONSUMER_KEY));
            Assert.That(headerContent, Contains.Substring(OAUTH_SIGNATURE_METHOD));
            Assert.That(headerContent, Contains.Substring(OAUTH_NONCE));
            Assert.That(headerContent, Contains.Substring(OAUTH_TIMESTAMP));
            Assert.That(headerContent, Contains.Substring(OAUTH_SIGNATURE));
            Assert.That(headerContent, Contains.Substring(OAUTH_TOKEN));
            Assert.That(headerContent, Contains.Substring(OAUTH_VERIFIER));
        }
 private AuthorizationHeader GenerateAuthorizationHeader(Nonce nonce, TimeStamp timestamp, Signature signature)
 {
     AuthorizationHeader header = new AuthorizationHeader(credentials, nonce, timestamp, signature);
     header.Token = token;
     return header;
 }
 private void AddAuthorizationHeaderToRequest(WebRequest request, AuthorizationHeader header)
 {
     request.Headers.Add(HttpRequestHeader.Authorization, header.ToString());
 }