2015-02-13 14 views
2

Я использую аутентификацию owin в проекте ASPNET MVC. При использовании Google у меня есть следующая проблема:Аутентификация OWIN с помощью Google

1- входе пользователя с учетной записью Google

2- Пользовательские знаки из

3- следующий раз, когда пользователь пытается войти в систему, то текущая учетная запись google автоматически используется для входа в систему снова, не запрашивая у пользователя, что он хочет использовать другую учетную запись.

Вопрос: Как я могу, используя аутентификацию google google, запросить пользователя, хочет ли он использовать текущую учетную запись или использовать другую?

Благодаря

+0

Как вы управляете своим входом? Разве вы не используете две отдельные кнопки и действия для обычного входа в систему и входа в Google? Если вы не вышли из системы во время вызова метода спящего режима. Возможно, проблема кэширования. Отладить и проверить свой статус во второй раз? – DSR

+0

Извините, теперь я увидел, что я недостаточно ясен. На шаге 3 я снова запомню логин google. В настоящее время я не поддерживаю свои собственные системные учетные записи, только google и facebook. Проблема заключается в том, что пользователь снова пытается войти в систему с помощью google, используется текущая учетная запись google, а не спрашивает пользователя явно, хочет ли он использовать текущую зарегистрированную учетную запись google или если он хочет перейти на другую. Может быть, это невозможно? Например, здесь, в stackoverflow, они указывают при выходе из системы, что вы также должны выйти из своего провайдера id. Может быть, мне нужно сделать то же самое? –

ответ

1

Если вы используете внешний поставщик входа в систему (Google в вашем случае), чтобы войти в приложение, то ваше приложение будет получить проверку подлинности стороннего поставщика (Google в вашем случае).

После успешной регистрации ключа поставщика хранилища идентификационных данных asp.net от поставщика третьей стороны в таблице AspNetUserLogins, которая будет использоваться при входе в следующий раз.

Но пользователь, выйдя из приложения, не означает, что пользователь выйдет из Google. Из-за этого, если вы используете тот же браузер, который уже прошел проверку подлинности для вашей учетной записи Google, вы сможете войти в свое приложение, используя уже аутентифицированную учетную запись Google.

В системе распознавания Asp.Net нет простой опции «из коробки», чтобы выходить из внешнего провайдера (Google) и приложения, когда вы вызываете выступление в своем приложении.

Чтобы выйти из учетной записи Google, вы должны позвонить Google API, когда вы звоните в свое приложение, чтобы выполнить свое требование.

Вы можете увидеть это work item, чтобы получить более подробную информацию об этом.

Смежные вопросы