我正在使用OAuthWebSecurity登录facebook,它正在使用localhost。但是,然后部署到实时服务器,我收到以下错误消息:
远程服务器返回错误:(400)错误请求。
我在本地测试也将主机文件更改为实时域 - 仍在本地工作。
这是堆栈跟踪:
[WebException: The remote server returned an error: (400) Bad Request.]
System.Net.WebClient.DownloadDataInternal(Uri address, WebRequest& request) +3291120
System.Net.WebClient.DownloadString(Uri address) +207
DotNetOpenAuth.AspNet.Clients.FacebookClient.QueryAccessToken(Uri returnUrl, String authorizationCode) +293
DotNetOpenAuth.AspNet.Clients.OAuth2Client.VerifyAuthentication(HttpContextBase context, Uri returnPageUrl) +167
DotNetOpenAuth.AspNet.OpenAuthSecurityManager.VerifyAuthentication(String returnUrl) +502
Microsoft.Web.WebPages.OAuth.OAuthWebSecurity.VerifyAuthenticationCore(HttpContextBase context, String returnUrl) +231
有什么建议吗?
答案 0 :(得分:1)
有一个与此相关的缺陷: https://github.com/DotNetOpenAuth/DotNetOpenAuth/issues/203
但显然不再维护该库: https://github.com/DotNetOpenAuth/DotNetOpenAuth/issues/317#issuecomment-29580565
...虽然在许多Microsoft文档中仍然引用它。调查与另一个缺陷相关的问题。
另请参阅:The remote server returned an error: (400) Bad Request Microsoft.AspNet.Membership.OpenAuth
答案 1 :(得分:1)
这是一个旧版本,但是我使用dotnetopenoath从Facebook登录中遇到了400错误,因为它已集成到MVC 4中并且继续进行疯狂的追逐,认为它不起作用,因为它不再受支持,当我所有的时候需要做的是捕获并记录异常,这个异常指出了我的特定情况的问题(app秘密证明设置):
catch (WebException exception)
{
using (WebResponse response = exception.Response)
{
HttpWebResponse httpResponse = (HttpWebResponse) response;
m_log.Debug("Error code: " + httpResponse.StatusCode);
using (Stream data = response.GetResponseStream())
{
if (data != null)
{
using (var reader = new StreamReader(data))
{
string text = reader.ReadToEnd();
m_log.Debug(text);
}
}
}
}
}