У меня есть следующий метод, который в основном аутентифицирует пользователей со своими учетными данными в Facebook. По какой-то причине я получаю WebException
при попытке обработать ключ авторизации (код). Поэтому я попытался прочитать поток ответов, чтобы узнать, что происходит, но я продолжаю получать ошибки при чтении потока. Вот мой код:Чтение потока ответов WebException
private void OnAuthCallback(HttpContextWrapper context, WebServerClient client)
{
try
{
IAuthorizationState authorizationState = client.ProcessUserAuthorization(context.Request);
AccessToken accessToken = AccessTokenSerializer.Deserialize(authorizationState.AccessToken);
String username = accessToken.User;
context.Items[USERNAME] = username;
}
catch (ProtocolException e)
{
if (e.InnerException != null)
{
String message = e.InnerException.Message;
if (e.InnerException is WebException)
{
WebException exception = (WebException)e.InnerException;
var responseStream = exception.Response.GetResponseStream();
responseStream.Seek(0, SeekOrigin.Begin);
using (StreamReader sr = new StreamReader(responseStream))
{
message = sr.ReadToEnd();
}
}
EventLog.WriteEntry("OAuth Client", message);
}
}
}
Если удалить responseStream.Seek(0, SeekOrigin.Begin);
линии, это дает мне ArgumentException
с сообщением, которое говорит, поток не был читаемым. И с этой строкой на месте, она говорит мне, что я не могу манипулировать потоком, который уже был закрыт. Как этот поток был закрыт? И почему я не могу читать?
@Iboshuizen: статус "ProtocolError'. – Kassem
Вы пробовали скрипач, чтобы узнать, какая информация идет от клиента к серверу и обратно? – lboshuizen