2009-01-19 2 views
3

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

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

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

+0

Я не знаю, почему люди в других ответах говорят «вы можете вообще не сценарий входа в OpenID сайт». Если вы можете сделать это из браузера, вы можете его создать. Ниже приведен пример регистрации сценариев через openid. http://www.earth.li/~noodles/blog/2005/12/grabbing-lj-posts-via-openid-a.html –

ответ

3

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

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

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

+0

+1 это действительно полезно –

0

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

http://wiki.openid.net/Libraries

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

Также possibly related question.

+0

Я думаю, что библиотека ориентирована на аутентификацию веб-сайтов, посмотрит на нее –

1

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

Смотрите этот вопрос, который решает эту проблему, и принятый ответ, объясняющий все детали: OpenID authentication and API access