README.md

    Yandex SmartCaptcha для .NET

    Данный проект не является официальной библиотекой Yandex Cloud

    Зависимости

    Refit

    Проект YandexSmartCaptcha.AspNetCore содержит интерфейс ISmartCaptchaApi для использования с библиотекой Refit. Refit — проект с открытым исходным кодом для типобезопасносного обращения к конечным точкам REST, предоставленным Yandex SmartCaptcha.

    Если вы не хотите использовать Refit, вы можете создать собственную реализация интерфейса ISmartCaptchaApi или использовать SmartCaptcha без этого проекта.

    Использование в ASP.NET Core

    1) Настройки

    Конфигурация представления в виде класса SmartCaptchaOptions. Некоторые значения предзаданы текущими значениями по умолчанию Yandex SmartCaptcha. SiteKey и ServerKey должны быть заданы для работы.

    Самым лёгким способом является использование настроек .NET Core через appsettings.json

    "SmartCaptcha": {
       "SiteKey": "", // Заполните поля вашей парой ключей
       "ServerKey": ""
    }
    

    и регистрация через AddSmartCaptcha, которая является частью YandexSmartCaptcha.AspNetCore.

    public void ConfigureServices(IServiceCollection services)
    {
       // Yandex SmartCaptcha
       services.AddSmartCaptcha(Configuration.GetSection("SmartCaptcha"));
       ...
    

    2) Регистрация Model Binder

    В настоящее время библиотека ASP.NET core даёт возможность автоматизировать интеграцию SmartCaptcha. Для этих целей применяется ModelBinder, которая используется если SmartCaptchaVerifyResponse является одним из передаваемых аргументов в action.

    Вы должны зарегистрировать Model Binder

    public void ConfigureServices(IServiceCollection services)
    {
       // Yandex SmartCaptcha
       services.AddSmartCaptcha(Configuration.GetSection("SmartCaptcha"));
    
        // Mvc
        services.AddControllersWithViews(mvcOptions =>
            // добавление model binder
            mvcOptions.AddSmartCaptchaModelBinder());
    }
    

    И ваш Action:

    public class HomeController : Controller
    {
        [HttpGet, Route("")]
        public IActionResult Index()
        {
            return View(new IndexViewModel());
        }
    
        [HttpPost, Route("")]
        public IActionResult Index(SmartCaptchaVerifyResponse smartCaptcha)
        {
            return View(new IndexViewModel(smartCaptcha));
        }
    }
    

    Лицензия

    Данную программу разрешено использовать в соответствии с ст. 1273 ГК РФ.

    Описание

    Неофициальная библиотека для использования сервиса SmartCaptcha от Яндекса в фреймворке Asp.Net

    Конвейеры
    0 успешных
    0 с ошибкой