Skip to content
This repository has been archived by the owner on Feb 11, 2023. It is now read-only.

Latest commit

 

History

History
134 lines (102 loc) · 5.81 KB

README.ru.md

File metadata and controls

134 lines (102 loc) · 5.81 KB

Nemiro.OAuth

Nemiro.OAuth – это библиотека классов для реализации авторизации по протоколу OAuth в проектах .NET Framework.

Библиотека предоставляет полностью готовые клиенты OAuth для популярных веб-сайтов с реализованными функциями получения базовой информации о пользователях.

Библиотека в первую очередь создавалась для использования в веб-проектах (ASP.NET MVC, WebForms), но она также может быть использована в консольных приложениях, проектах Windows Forms и, теоретически, в других типах проектов.

Исходный код Nemiro.OAuth поставляется на условиях лицензии Apache License Version 2.0.

Для установки Nemiro.OAuth выполните следующую команду в консоли диспетчера пакетов (Package Manager Console):

PM> Install-Package Nemiro.OAuth

Демонстрация

Посмотреть на работу библиотеки Nemiro.OAuth можно на демонстрационном сайте:

http://demo-oauth.nemiro.net/

Особенности

  • Поддержка протоколов OAuth 1.0 и 2.0;
  • Получение базовой информации о пользователях (если поставщик поддерживает и достаточно разрешений): ID, полное имя, пол, дата рождения, email и номер телефона;
  • OAuth-клиенты «из коробки» для: Amazon, Assembla, CodeProject, Dropbox, Facebook, Foursquare, GitHub, Google, Instagram, LinkedIn, Microsoft Live, Mail.Ru, Odnoklassniki, SoundCloud, SourceForge, Tumblr, Twitter, VK, Yahoo!, Yandex;
  • Классы для создания собственных клиентов;
  • Унифицированные методы работы с разнообразными API.

Меньше кода, больше возможностей!

Системные требования

  • .NET Framework 3.5, 4.0, 4.5 или 4.6

Использование

1. На сайте поставщика OAuth зарегистрируйте своё приложение.

2. Поставщик выдаст идентификатор и секретный ключ вашего приложения. Используйте их при регистрации поставщика в своём проекте. В веб-проектах это лучше всего делать в файле Global.asax, в обработчике события Application_Start.

Например, Facebook:

C#

OAuthManager.RegisterClient
(
  "facebook", 
  "1435890426686808", 
  "c6057dfae399beee9e8dc46a4182e8fd"
);

Visual Basic .NET

OAuthManager.RegisterClient _
(
  "facebook", 
  "1435890426686808", 
  "c6057dfae399beee9e8dc46a4182e8fd"
)

3. Создайте страницу обратного вызова и добавьте код получения информации из профиля пользователя с сайта поставщика.

Например:

C#

public partial class ExternalLoginResult : System.Web.UI.Page
{
  protected void Page_Load(object sender, EventArgs e)
  {
    var result = OAuthWeb.VerifyAuthorization();
    Response.Write(String.Format("Поставщик: {0}<br />", result.ProviderName));
    if (result.IsSuccessfully)
    {
      var user = result.UserInfo;
      Response.Write(String.Format("Идентификатор:     {0}<br />", user.UserId));
      Response.Write(String.Format("Отображаемое имя:  {0}<br />", user.DisplayName));
      Response.Write(String.Format("Электронная почта: {0}", user.Email));
    }
    else
    {
      Response.Write(result.ErrorInfo.Message);
    }
  }
}

Visual Basic .NET

Public Class ExternalLoginResult
  Inherits System.Web.UI.Page

  Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Dim result As AuthorizationResult = OAuthWeb.VerifyAuthorization()
    Response.Write(String.Format("Provider: {0}<br />", result.ProviderName))
    If result.IsSuccessfully Then
      Dim user As UserInfo = result.UserInfo
      Response.Write(String.Format("Идентификатор:     {0}<br />", user.UserId))
      Response.Write(String.Format("Отображаемое имя:  {0}<br />", user.DisplayName))
      Response.Write(String.Format("Электронная почта: {0}", user.Email))
    Else
      Response.Write(result.ErrorInfo.ToString())
    End If
  End Sub

End Class

4. Создайте ссылку для перенаправления пользователя на сайт поставщика OAuth для авторизации.

C#

string returnUrl =  new Uri(Request.Url, "ExternalLoginResult.aspx").AbsoluteUri;
OAuthWeb.RedirectToAuthorization("facebook", returnUrl);

Visual Basic .NET

Dim returnUrl As String = New Uri(Request.Url, "ExternalLoginResult.aspx").AbsoluteUri
OAuthWeb.RedirectToAuthorization("facebook", returnUrl)

5. Наслаждайтесь!

См. также