Thinktecture IdentityServer с ASP.NET Identity — уже аутентифицированный пользователь

Я создаю хост OpenId Connect с помощью IdentityServer v3, поддерживаемого ASP.NET Identity.

В случаях, когда пользователь уже вошел в хост-приложение с помощью удостоверения ASP.NET, как я могу использовать существующий сеанс, а не предлагать пользователю войти снова?

Например, если вы уже вошли в свою учетную запись Google и переходите на страницу https://jabbr.net/. , вы обнаружите, что Google не предлагает вам ввести имя пользователя и пароль для аутентификации через Google.


person Travis Collins    schedule 16.10.2014    source источник


Ответы (1)


IdentityServer не будет запрашивать ваши учетные данные, когда существует существующий сеанс аутентификации - IOW файл cookie. Проверьте, присутствует ли этот файл cookie или, возможно, он каким-то образом потерян. По умолчанию файл cookie действителен только до тех пор, пока окно браузера не закрыто.

IdSrv3 beta 2 теперь также имеет функцию постоянных файлов cookie -

https://identityserver.github.io/Documentation/docs/configuration/authenticationOptions.html

person leastprivilege    schedule 17.10.2014
comment
Спасибо за ответ, Дом. Присутствует файл cookie, он называется .AspNet.ApplicationCookie. IdentityServer по какой-то причине не принимает этот сеанс и создает собственный файл cookie с именем .Aspnet.Cookies. Есть идеи? Это был долгий путь, но я попытался изменить имя файла cookie в ASP.NET Identity на .AspNet.Cookies, но это не помогло, и новый файл cookie сделал недействительной учетную запись Identity. - person Travis Collins; 17.10.2014
comment
Конечно, файл cookie должен быть создан IdentityServer. - person leastprivilege; 19.10.2014
comment
Мой сайт использует ASP.NET Identity, который выдает файлы cookie, когда пользователь входит в систему. Я хочу добавить возможности хоста OpenID Connect на этот сайт, что позволит другим сайтам определять текущего пользователя и его претензии. Можно ли сделать это таким образом, чтобы пользователь с активным файлом cookie сеанса (из ASP.NET Identity) мог запросить IdentityServer без повторного ввода своих учетных данных? - person Travis Collins; 19.10.2014
comment
нет. это не так работает. Вы должны использовать IdentityServer для входа в систему в первую очередь, чтобы получить функцию SSO. - person leastprivilege; 20.10.2014