2014-01-28 1 views
0

У меня есть странная проблема с внешней аутентификацией Google. В основном я использую почти тот же код, который создается по умолчанию в интернет-приложении MVC4. Все работает нормально на моей локальной машине. Я могу войти в аккаунт google.C# MVC4 Не удается войти в Google при использовании другой строки подключения

Но когда я изменить строку connectrion к внешней базе данных в Интернете, этот код:

OAuthWebSecurity.Login(result.Provider, result.ProviderUserId, createPersistentCookie: false) 

возвращает FALSE, так что это не вход в систему, и я не знаю почему. То же самое происходит, когда я публикую весь сайт в Интернете (с той же внешней соединительной строкой, которая, похоже, создает проблему на моей локальной машине).

ТОЛЬКО разница между рабочей и нерабочей версией - это другая строка подключения в web.config.

У кого-то такая же проблема?

EDIT

я не упомянул. Другая строка подключения работает правильно. Он получает все данные из базы данных, но почему-то аутентификация Google не работает. Он просто не входит в систему. Схема базы данных и данные идентичны моей локальной базе данных (у меня даже сгенерирован SQL-скрипт с данными и применяется во внешней базе данных) Также пользователь, который я хочу войти в систему, находится в этой внешней базе данных.

Так что происходит: OAuthWebSecurity.Login возвращает false, поэтому я автоматически хочу зарегистрировать нового пользователя, но затем пользователь уже найден в базе данных, и я получаю что-то вроде «пользователь уже существует в базе данных».

Очень странно.

+0

Вы изменили строку подключения и приложение сломалось. Почему это была ошибка Оата? Вы получаете ошибки в своих журналах? Работает ли остальная часть вашего приложения с использованием этой строки соединения? Доступна ли база данных для вашего приложения? – CodeCaster

+1

Извините за промахи. Другая строка подключения работает, потому что я получил все данные из базы данных (статьи, записи, сообщения, что угодно). Но почему-то у меня возникают трудности с входом в Google с этим только изменением строки подключения. –

ответ

0

Создал ли пользователь во внешней БД с помощью метода CreateOrUpdateAccount? Возможно, вы не ассоциировали любого пользователя с учетными данными Google, которые вы используете ...

Процесс Логин работает в следующих этапов:.

  1. Эй Google, скажите мне, кто вошел в
  2. Google говорит вам некоторые USERID X
  3. OAuthWebSecurity просит у поставщика членства для пользователя с GoogleUserId X
  4. Если существует такой пользователь, он регистрирует его и если нет, то не удается Войти ...
+0

Спасибо за этот список :) Жаль, что я скопировал все данные из своих таблиц, но не из автогенерированных таблиц членства. Удаление записи из моей таблицы пользователей вызвало автоматическую регистрацию снова, на этот раз также с назначением его googleUserId, который отсутствовал ... что устранило проблему.Но ваш список (пункт 3) напомнил мне, что я должен где-то иметь googleUserId. Спасибо. –