Windows Live SDK Авторизация - PullRequest
       27

Windows Live SDK Авторизация

0 голосов
/ 01 февраля 2011

Я работаю с Windows Live SDK из C #, пытаясь напрямую вызвать остальную службу для получения моего токена oAuth, но вместо этого я получаю ошибку 401.Unauthorized.

У меня есть приложение, зарегистрированное как настольное приложение на https://manage.dev.live.com/ и опубликованное, поэтому у меня есть свой собственный идентификатор клиента и секретный ключ.

Из приложения для настольного компьютера я открываю ИнтернетОкно проводника для входа в систему и получения моего кода подтверждения.

С этим кодом, секретным ключом и clientID я вызываю AccessToken.aspx следующим образом:

try
{
    string requestUrl = "https://consent.live.com/AccessToken.aspx";

    // Request the access token.
    string postData = string.Format("wrap_client_id={0}&wrap_client_secret={1}&wrap_verification_code={2}",
                                      clientId,
                                      secretKey,
                                      verificationCode);

    postData = HttpUtility.UrlEncode(postData);
    byte[] postDataEncoded = System.Text.Encoding.UTF8.GetBytes(postData);

    WebRequest req = HttpWebRequest.Create(requestUrl);
    req.Method = "POST";
    req.ContentType = "application/x-www-form-urlencoded";
    req.ContentLength = postDataEncoded.Length;

    Stream requestStream = req.GetRequestStream();
    requestStream.Write(postDataEncoded, 0, postDataEncoded.Length);

    WebResponse res = req.GetResponse();

    string responseBody = null;

    using (StreamReader sr = new StreamReader(res.GetResponseStream(), Encoding.UTF8))
    {
        responseBody = sr.ReadToEnd();
    }

    // Process FORM POST.
    NameValueCollection responseCollection = System.Web.HttpUtility.ParseQueryString(responseBody);

    return responseCollection["wrap_access_token"];
}
catch (Exception ex)
{
    throw ex;
}

Что я делаю неправильно?

Заранее благодарим за любую предоставленную помощь.

1 Ответ

0 голосов
...