Twitter重定向使用网站上的auth.BeginAuthorization但不在localhost中

时间:2013-09-17 12:39:43

标签: c# twitter linq-to-twitter

我使用LinqToTwitter实现Twitter。

在Localhost上一切正常,所以我将其迁移到DEV环境。 不幸的是,在我的DEV环境中,当我点击Twitter登录按钮时,没有重定向到https://api.twitter.com/oauth/authorize,我没有错误。

有人对此有解释吗?

谢谢

2 个答案:

答案 0 :(得分:1)

如果您还在使用,请检查您的web.config添加:

<customErrors mode="RemoteOnly" defaultRedirect="~/404.html">
  <error statusCode="403" redirect="~/404.html" />
  <error statusCode="404" redirect="~/404.html" />
</customErrors>

答案 1 :(得分:0)

我弄清楚为什么会发生这种情况。当我对用户进行身份验证时,我使用了以下代码:

IOAuthCredentials credentials = new SessionStateCredentials();
if (credentials.ConsumerKey == null || credentials.ConsumerSecret == null)
{
    credentials.ConsumerKey = ConsumerKey;
    credentials.ConsumerSecret = ConsumerSecret;
}
auth = new WebAuthorizer
{
    Credentials = credentials,
    PerformRedirect = authUrl => HttpContext.Current.Response.Redirect(authUrl)
};

问题是SessionStateCredentials()。它第一次工作,但是如果你重新提交它(例如在开发和调试期间)而没有先清除会话(因为它在SessionState中运行),它将不会重定向。我的修复是改变这一行:

IOAuthCredentials credentials = new SessionStateCredentials();

到此:

IOAuthCredentials credentials = new InMemoryCredentials();

之后,现在一切正常。我希望有人能从中得到一些帮助。