Хранение OpenID пользователей и как обрабатывать URL разных провайдеров - PullRequest
1 голос
/ 28 октября 2010

Я изучаю OpenID для нового "хобби" проекта.Главным образом, просто чтобы узнать, как это работает, скачали примеры DotNetOpenAuth и посмотрели реализацию Nerddinner.

И у меня есть пара вопросов.

  1. Что вы хранителокально, чтобы идентифицировать возвращающихся пользователей (управление ролями, их сообщения, что угодно)?Я вижу, что люди используют ClaimedIdentifier, что приводит меня к следующему вопросу.

  2. Как вы обращаетесь с пользователями, выбирающими другой URL для OpenID?

Если я использую Google в качестве провайдера, я могу использовать "http://www.google.com/accounts/o8/id" в качестве URL-адреса, или я мог бы использовать" http://www.google.com/profiles/username". В примере проверяющей стороны DotNetOpenAuth я получаю другое значение ClaimedIdentifier при использовании двух.www.google.com/accounts/o8/id?id=blahblahbla и www.google.com/profiles/

Глядя на вход в систему stackoverflow.com, он, кажется, справляется с этим и возвращает меня в свой аккаунт прилибо один из URL-адресов Google, либо с помощью Facebook.

Но разные поставщики OpenID не знают друг друга, я прав?

В любом случае, я надеюсь, что некоторые из вас, умные люди, могут помочь мне понять:)

-

Кристиан

1 Ответ

1 голос
/ 28 октября 2010

Вы хотите использовать методы FormsAuthentication, чтобы asp.net держал пользователя в системе. Вы просто используете OpenId для проверки имени пользователя и пароля от провайдера, которым вы не управляете.

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

...