我正在开发一个获取用户 gmail 的 Web 应用程序。对于 OAuth 身份验证,我正在从 UI 到 HTTPHandler 进行 Ajax 调用,并且从 HttpHandler 我正在对谷歌服务器进行 HttpWebRequest GET 调用。我收到了我在应用程序 UI 中呈现的完整 HTML 页面(Google 用户登录)的响应。登录并单击登录后,它什么也不做。根据文档,它实际上必须重定向到谷歌页面,在用户同意后,我应该得到对提供的 Redirect_uri 的响应。没有任何事情发生。下面是我的处理程序请求方法的代码块。
公共无效ProcessRequest(HttpContext上下文){
String url = "https://accounts.google.com/o/oauth2/auth?scope=https%3A%2F%2Fmail.google.com%2Fmail%2Ffeed%2Fatom&response_type=code&access_type=offline&redirect_uri=http%3A%2F%2Flocalhost%3A50639%2FresponseHandler.ashx&approval_prompt=force&client_id=XXXXXXXXXXXX.apps.googleusercontent.com";
HttpWebRequest webrequest = (HttpWebRequest)WebRequest.Create(url);
webrequest.Method = "GET";
HttpWebResponse response = (HttpWebResponse)webrequest.GetResponse();
Stream picasaResponse = response.GetResponseStream();
HttpContext.Current.Response.Redirect(response.ResponseUri.ToString());
StreamReader picasaReader = new StreamReader(picasaResponse);
string picasaAPIResponse = picasaReader.ReadToEnd();
Response.InnerHtml = picasaAPIResponse;
context.Response.ContentType = "text/plain";
context.Response.Write(response);
}
提前致谢。