Подтвердить что ты не робот

Поставщик членства ASP.NET ASP.NET

Есть ли рекомендуемые ресурсы для реализации пользовательского поставщика членства, который использует oAuth? Целью было бы заставить пользователей войти в мое приложение ASP.NET MVC, используя их существующие учетные данные oAuth. После аутентификации пользователя я хотел бы использовать встроенные функции авторизации ASP.NET.

Спасибо.

4b9b3361

Ответ 1

Я не уверен, что вы ищете OAuth.

OAuth предназначен для делегирования полномочий с помощью токенов. В зависимости от того, что вы делаете, у вас есть два сценария:

  • Ваше приложение хочет использовать некоторые данные пользователей, размещенные провайдером (скажем, Twitter или Google). В этом случае ваша заявка будет потребителем - короче говоря, пользователю необходимо будет войти в систему и согласиться разрешить вашему приложению иметь доступ к своим данным на провайдере, и вам будет предоставлен токен доступа, который можно использовать для доступа к этим защищенным ресурсам.
  • Кроме того, у вас есть приложение с пользователями, у которых есть вход в систему и т.д. И вы хотите предоставить (то есть вы являетесь провайдером) доступ к некоторой ограниченной информации ваших пользователей сторонним приложениям (потребителям), не подвергая учетные данные пользователей для этих служб.

Для получения дополнительной информации об OAuth - просмотрите сайт OAuth.Net. В настоящее время существует 3 реализации OAuth для .Net.

Из-за того, как работает OAuth, я не могу представить, как у вас может быть провайдер членства "OAuth". Он действительно предназначен для защиты API, и часто целью является делегирование полномочий на более узком уровне, то есть предоставление доступ к потребительским приложениям только для данных адресной книги пользователей, не позволяя им получать доступ к архивам электронной почты, их календарю и т.д., что не очень хорошо соответствует модели безопасности на основе членства/роли.

Я предполагаю, что вы действительно ищете, это OpenId, то есть способ аутентификации себя с помощью Stackoverflow. Я бы посоветовал прочитать здесь пример изучения Stackoverflow OpenId и, вероятно, лучшая реализация OpenId для .Net в настоящее время является частью DotNetOpenAuth (это формально называлось DotNetOpenId, сайт кода google для проекта здесь).

Ответ 2

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

Ответ 3

вы должны посмотреть https://github.com/rustd/ASPNETTemplates, в котором есть шаблоны проектов по умолчанию для asp.net, которые демонстрируют вход в систему с использованием OAUth, а затем расширяют универсальные поставщики (шаблон веб-форм, но вы можете сделать то же самое для mvc), чтобы выполнять роли и т.д.

Ответ 4

Библиотеки прошли долгий путь с тех пор, как вы разместили этот вопрос... Я начал использовать эту библиотеку для Oauth - она ​​уже реализовала интеграцию Facebook, Twitter, PayPal и Google+:

OAuth2 Социальные логины - Facebook, Google, Twitter, PayPal - ASP.NET MVC С# с открытым исходным кодом

Кроме того, если обратная совместимость не является проблемой для вас, Microsoft начала поддерживать популярных поставщиков OAuth... см. эту статью:

Microsoft OAuth2 Интеграция OWIN/Katana с Facebook и Google+