Asp.Net MVC 5 Owin Twitter Auth投掷401exception

我使用Owin中间件build立了OAuth身份validation,基于使用“个人帐户”身份validation启动新Web项目时创build的默认项目。

我已经调整了一下,但Facebook和谷歌工作很好,但是,当我点击“Twitter”button发出挑战,它是抛出一个500 httpexception与错误信息:

响应状态码不表示成功:401(未经授权)。

这只有Twitter的。 这是我的身份validationconfiguration:

// Just a configuration section that reads from the web.config var configuration = new OwinCookieConfigurationSection("owinCookieConfiguration"); app.UseCookieAuthentication(GetCookieAuthenticationOptions(configuration)); app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie); app.UseTwitterAuthentication( consumerKey: "XXX", consumerSecret: "XXX" ); app.UseFacebookAuthentication( appId: "XXX", appSecret: "XXX" ); app.UseGoogleAuthentication(); 

这肯定是一个500错误,而不是401错误,因为它表明,我已经证实,它从来没有使它通过原来的Twitter后挑战。 堆栈跟踪显示显示Twitter没有从ObtainRequestToken调用中返回成功代码:

堆栈跟踪

有任何想法吗?

你需要进入Twitter的开发应用程序,并添加一个网站地址。 我知道这似乎很愚蠢,但这会解决你的问题。

  1. https://apps.twitter.com/
  2. 转到设置选项卡
  3. 将callbackurl设置为任何网站。 即使它不是真实的。

这应该解决你的问题。

我用1年前Patrick的方式解决了我的问题。 今天我再次遇到同样的问题,但这次我发现这个问题是由于我的电脑中的date/时间设置造成的。 由于这台电脑的date/时间通常是不同步的,我不得不去“更改date和时间设置” – >“互联网时间”选项卡,并启用互联网同步。