Вход на сайт OpenID из приложения .net - PullRequest
3 голосов
/ 20 января 2009

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

Чтобы заставить это работать, мне нужно как-то войти в SO из консольного приложения.

Существует ли библиотека .Net, которая упрощает вход на сайт openid с использованием необработанных http-запросов?

Ответы [ 3 ]

3 голосов
/ 08 февраля 2009

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

Итак, у вас есть два варианта. Один из них заключается в том, чтобы SO предоставил более доступный API для редактирования вашего профиля, используя некоторый механизм, лучше подходящий для автоматических вызовов (например, OAuth).

С другой стороны, если вы пишете этот код для личного использования, вы можете контролировать, какой поставщик OpenID вы используете, и выбрать тот, который можно использовать в сценарии. В крайнем случае, вы можете запустить своего собственного провайдера, а затем установить любой уровень безопасности между вашим скриптом и вашим провайдером. Или вы можете просто попробовать написать скрипт с чем-то вроде Mechanize, который вошел в систему у вашего текущего провайдера. (Просто убедитесь, что он хорошо себя ведет по отношению к скрытым элементам формы и файлам cookie. Хорошие поставщики OpenID могут быть очень разборчивы в этом, чтобы защитить свой аккаунт от атак подделки межсайтовых запросов.)

1 голос
/ 17 февраля 2009

Как уже было сказано, вы, как правило, не можете выполнить сценарий входа на сайт OpenID, но если сайт, на который вы хотите войти для консольного приложения, поддерживает (или может поддерживать) OAuth, то вы абсолютно точно можете Вы хотите сделать.

См. Этот вопрос, который касается этого, и принятый ответ, который объясняет все детали: Аутентификация OpenID и доступ к API

0 голосов
/ 20 января 2009

Вот наиболее вероятное место, где его можно найти:

http://wiki.openid.net/Libraries

В списке есть один, называемый DotNetOpenId, написанный на C #, поэтому он выглядит многообещающе ;-), но я ничего не знаю о .NET, поэтому не могу сказать, будет ли он работать именно для вас.

Кроме того, возможно связанный вопрос .

...