У меня есть веб-сайт ASP.NET MVC 5, и я хочу добавить внешний вход через Google, Twitter, Facebook и некоторые другие провайдеры. Я следую этому руководству: http://www.asp.net/mvc/overview/security/create-an-aspnet-mvc-5-app-with-facebook-and-google-oauth2-and-openid-sign-onИсключение формата строки при использовании знака Google OAuth в
Прямо сейчас, я пытаюсь заставить Google войти в систему. Я зарегистрировал свой сайт в Google и получил идентификатор клиента и секрет клиента. Я сохраняю эти два значения в файле PrivateSettings.config, который я не могу использовать из-под контроля источника.
<appSettings>
<add key="GOOGLE_CLIENT_ID" value="<snip>"/>
<add key="GOOGLE_CLIENT_SECRET" value="<snip>"/>
</appSettings>
И я ссылается мой файл в Web.config
<appSettings file="PrivateSettings.config">
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
Мой проект основан на шаблоне, который VS2013 генерируется, когда я создал этот проект. Я выполнил тот же процесс создания, что и в упомянутом выше учебнике (индивидуальные учетные записи пользователей), в котором были созданы некоторые классы конфигурации в папке App_Start. Я изменил Startup.Auth.cs файл, чтобы добавить поддержку для Google, войдите в системе, раскомментировав app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions()
немного и добавил ссылку на идентификатор клиента и секрет клиента, так как:
app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions()
{
ClientId = ConfigurationManager.AppSettings["GOOGLE_CLIENT_ID"],
ClientSecret = ConfigurationManager.AppSettings["GOOGLE_CLIENT_SECRET"]
});
Я также включена SSL в свойствах проекта.
Когда я запускаю мое приложение (на местном, я не развертывается его еще) и попытаться войти с помощью Google, используя свой личный счет, процесс Логин проваливается в public async Task<ActionResult> ExternalLoginCallback(string returnUrl)
методе, в этой строке:
var result = await SignInManager.ExternalSignInAsync(loginInfo, isPersistent: false);
Он выбрасывает Format of the initialization string does not conform to specification starting at index 0
исключение. loginInfo
не является нулевым (проверяется при отладке, плюс есть проверка перед выполнением этой строки, которая перенаправляет, если loginInfo
- null) и содержит мою информацию от Google (почта, имя).
Любая идея, что может вызвать это?