DotNetOpenAuth Войдите в систему, не запрашивая учетные данные во второй раз (если менее 10-15 секунд) - PullRequest
1 голос
/ 19 марта 2012

Я использую DotNetOpenAuth. Я настроил свое приложение с помощью проверки подлинности по пользовательской форме с помощью Gmail OpenID через (DotNetOpenAuth) Я могу успешно войти в свое приложение. Но скажем, например. Я вышел из приложения и нажал кнопку входа (с 10 до 15 секунд), он не перенаправляет на вход в Gmail. Он сгенерировал токен аутентификации без запроса от пользователя (надеюсь, что-то кешируется OpenID)

Я использовал PAPE

  request.AddExtension(new PolicyRequest()
                        {
                            MaximumAuthenticationAge = TimeSpan.Zero
                        });

А также попытался настроить в web.config.

<openid cacheDiscovery="false">

Есть ли обходной путь для того же.

ПРИМЕЧАНИЕ: Как только я вышел из системы, я использовал для очистки ВСЕ сеанс и вызова FormAuthentication.SignOut()

1 Ответ

1 голос
/ 19 марта 2012

С OpenID вы, как проверяющая сторона, не можете навязать политику входа в систему для пользователя у его провайдера.Вы можете запросить, чтобы провайдер повторно зарегистрировал пользователя, как у вас с расширением PAPE, но провайдер может все еще игнорировать это.

Параметр cacheDiscovery не имеет отношения к сквозному входу в систему, поэтому я предлагаю вам удалить эту запись, поскольку он просто замедлит все входы в систему.

Я думаю, что вы ошибаетесь, когда говоритеэто не перенаправление в Google.Если вы просматриваете журналы или адресную строку вашего браузера, Google.com должен быть перенаправлен, но в этот момент Google решает, что у пользователя есть сеанс входа в систему, и избегает предлагать ему снова войти в систему, и перенаправляет пользователя немедленно обратно на вашсайт.

...