Ответ 1
Я не уверен, что вы ищете OAuth.
OAuth предназначен для делегирования полномочий с помощью токенов. В зависимости от того, что вы делаете, у вас есть два сценария:
- Ваше приложение хочет использовать некоторые данные пользователей, размещенные провайдером (скажем, Twitter или Google). В этом случае ваша заявка будет потребителем - короче говоря, пользователю необходимо будет войти в систему и согласиться разрешить вашему приложению иметь доступ к своим данным на провайдере, и вам будет предоставлен токен доступа, который можно использовать для доступа к этим защищенным ресурсам.
- Кроме того, у вас есть приложение с пользователями, у которых есть вход в систему и т.д. И вы хотите предоставить (то есть вы являетесь провайдером) доступ к некоторой ограниченной информации ваших пользователей сторонним приложениям (потребителям), не подвергая учетные данные пользователей для этих служб.
Для получения дополнительной информации об OAuth - просмотрите сайт OAuth.Net. В настоящее время существует 3 реализации OAuth для .Net.
Из-за того, как работает OAuth, я не могу представить, как у вас может быть провайдер членства "OAuth". Он действительно предназначен для защиты API, и часто целью является делегирование полномочий на более узком уровне, то есть предоставление доступ к потребительским приложениям только для данных адресной книги пользователей, не позволяя им получать доступ к архивам электронной почты, их календарю и т.д., что не очень хорошо соответствует модели безопасности на основе членства/роли.
Я предполагаю, что вы действительно ищете, это OpenId, то есть способ аутентификации себя с помощью Stackoverflow. Я бы посоветовал прочитать здесь пример изучения Stackoverflow OpenId и, вероятно, лучшая реализация OpenId для .Net в настоящее время является частью DotNetOpenAuth (это формально называлось DotNetOpenId, сайт кода google для проекта здесь).