Хорошо ли DotNetopenAuth получить учетные данные пользователя? - PullRequest
0 голосов
/ 29 февраля 2012

Я хочу создать сайт, который читает заголовки Gmails.

Если я использую dotNetopenAuth для аутентификации - получу ли я пользователя и пароль пользователя для своих приложений?

Похоже, что ответ - нет, по соображениям безопасности, поэтому OpenId предназначен для.

Но тогда я знаю сайт, который делает это. Как?

Ответы [ 2 ]

2 голосов
/ 29 февраля 2012

Если вы используете протоколы, такие как OpenID или OAuth, у вас не будет доступа ни к имени пользователя, ни к паролю.

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

В зависимости от провайдера, которого вы используете для аутентификации (Google, Yahoo, MyOpenId, Twitter и т. Д.), Вы можете запросить дополнительную информацию, такую ​​как адрес электронной почты и имя пользователя, но вы не гарантированно получите даже это.

Ни при каких обстоятельствах вы никогда не увидите их пароль. Если вы хотите этого, вам придется написать свое приложение для использования собственного провайдера аутентификации, такого как встроенный ASP.NET членство провайдера .

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

Смысл OpenID в том, что вы говорите: делегировать аутентификацию другому, чтобы вам не приходилось иметь дело с паролем (если он вообще есть).

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

Если вы посмотрите на пример DotNetOpenAuth OpenIdRelyingPartyWebForms \ loginPlusOAuth.aspx, вы увидите пример входа пользователя в Google, благодаря которому сайт сможет загрузить адресную книгу пользователя Google. Это можно легко изменить, чтобы включить разрешения на другие действия (например, чтение заголовков электронной почты), но вам необходимо прочитать документацию Google ( GData ), чтобы узнать, какую область применения использовать, и API-интерфейсы для вызова, чтобы получить эту информацию. .

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...