C#:OAuth 2.0 身份验证不会重定向用户同意



我正在开发一个获取用户gmail的Web应用程序。对于OAuth认证,我正在从UI到HTTPHandler进行Ajax调用,并从HTTPHandler进行HttpWebRequest GET调用到谷歌服务器。我得到完整的HTML页面的响应(谷歌用户登录),我在我的应用程序的UI渲染。在登录并点击登录后,它什么也不做。根据文件,它实际上必须重定向到谷歌页面,并在用户的同意后,我应该得到Redirect_uri提供的响应。这类事情没有发生。下面是我的句柄进程请求方法的代码块

public void 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);
    }

你应该将用户重定向到授权url(使用全页重定向或在弹出窗口中),而不是获取url。

相关内容

  • 没有找到相关文章

最新更新