我正在使用ASP.NET MVC5创建一个网站,我尝试让我的用户使用其Twitter凭据登录。 但是,当我尝试使用Twitter登录时,它会系统性地失败并显示错误:
响应状态代码不表示成功:403(禁止访问)
复制步骤
1 -创建一个全新的ASP.NET MVC5项目(使用VS模板)
2 -只需在app.UseTwitterAuthentication
as described here或本文末尾更改Startup.Auth.cs
3 -运行项目,转到“登录”,然后单击右侧的Twitter按钮
4 -享受
我已经使用以下回调URL配置了我的Twitter帐户:
我也尝试过/signin-twitter
,它没有任何改变,并且此回调从未被击中。
AccountController.cs
的方法ExternalLogin
发生故障
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult ExternalLogin(string provider, string returnUrl)
{
// Request a redirect to the external login provider
return new ChallengeResult(provider, Url.Action("ExternalLoginCallback", "Account", new { ReturnUrl = returnUrl }));
}
我试图尝试/抓住ChallengeResult
以获取更多信息,但这是我唯一可以获得的信息:
(请注意,StatusCode
是401,而错误消息表示403 ...)
我已经三重检查了Twitter的Consumer API密钥,那里没有错字。
另外,我的Twitter帐户权限中的“访问权限”设置为Read and write
Startup.Auth.cs
中的TwitterAuthentication看起来像这样:
app.UseTwitterAuthentication(new TwitterAuthenticationOptions
{
ConsumerKey = "My25CharactersKey",
ConsumerSecret = "My50CharactersSecret",
BackchannelCertificateValidator = new Microsoft.Owin.Security.CertificateSubjectKeyIdentifierValidator(new[]
{
"A5EF0B11CEC04103A34A659048B21CE0572D7D47", // VeriSign Class 3 Secure Server CA - G2
"0D445C165344C1827E1D20AB25F40163D8BE79A5", // VeriSign Class 3 Secure Server CA - G3
"7FD365A7C2DDECBBF03009F34339FA02AF333133", // VeriSign Class 3 Public Primary Certification Authority - G5
"39A55D933676616E73A761DFA16A7E59CDE66FAD", // Symantec Class 3 Secure Server CA - G4
"add53f6680fe66e383cbac3e60922e3b4c412bed", // Symantec Class 3 EV SSL CA - G3
"4eb6d578499b1ccf5f581ead56be3d9b6744a5e5", // VeriSign Class 3 Primary CA - G5
"5168FF90AF0207753CCCD9656462A212B859723B", // DigiCert SHA2 High Assurance Server CA
"B13EC36903F8BF4701D498261A0802EF63642BC3" // DigiCert High Assurance EV Root CA
})
});
任何帮助将不胜感激