Разделите в своем уме понятия аутентификации и авторизации. Вы авторизуете пользователей на своем веб-сайте только . Вы можете сделать это с помощью OpenID, InfoCard, STS или имени пользователя + пароля. Клиентские приложения, которые обращаются к вашей службе за информацией о пользователе, должны быть авторизованы , что традиционно означает, что они запрашивают у пользователя свое имя пользователя и пароль, что является анти-паттерном и ломается, когда вы используете более сильный или альтернативный учетные данные, такие как OpenID или InfoCard, как вы видите.
Для авторизации приложения следует использовать протокол делегирования, такой как OAuth, который позволяет пользователю посещать веб-страницу, которая позволяет настольному приложению получать доступ к личным данным пользователя, не предоставляя пользователю свои учетные данные.
DotNetOpenAuth поддерживает этот полный сценарий. Он поставляется с примерами сайтов OAuth и OpenID. Я рекомендую вам воспользоваться одним из шаблонов проектов , которые демонстрируют вход в систему OpenID (а веб-формы даже включают в себя вход в систему InfoCard в качестве опции), а также OAuth Service Provider, который работает как для веб-пользователей, так и авторизует их. клиентские приложения прямо из коробки.