Я создаю веб-сайт с ASP.NET MVC5 и пытаюсь разрешить своим пользователям входить в систему со своими учетными данными Twitter.
Тем не менее, когда я пытаюсь войти в систему с Twitter, он систематически завершается ошибкой:
Код статуса ответа не указывает на успех: 403 (Запрещено)
Шаги для воспроизведения
1 - Создание нового проекта ASP.NET MVC5 (с использованием шаблона VS)
2 - Просто измените app.UseTwitterAuthentication
на Startup.Auth.cs
, как описано здесь или в конце этого поста
3 - Запустите проект, войдите в систему, затем нажмите кнопку Twitter справа
4 - Наслаждайтесь
Я настроил свою учетную запись Twitter с этими URL-адресами для обратного вызова:
Я также пытался /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 ...)
Я трижды проверил ключи API потребителя в Твиттере, там нет опечаток.
Кроме того, разрешение доступа установлено на Read and write
в разрешении моей учетной записи Twitter
Аутентификация Twitter в Startup.Auth.cs
выглядит так:
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
})
});
Любая помощь будет принята с благодарностью