Нугет
Install-Package Spaier.Recaptcha
.NET интерфейс командной строки
dotnet add package Spaier.Recaptcha
public void ConfigureServices ( IServiceCollection services ) {
// Your Code
services . AddRecaptcha ( )
// Use appsettings.json
//.AddInMemoryConfigurationStore(Configuration.GetSection("Recaptcha"))
. AddInMemoryConfigurationStore ( new Dictionary < string , RecaptchaConfiguration >
{
[ "Sitekey1" ] = new RecaptchaConfiguration ( RecaptchaDefaults . TestSecretKey , RecaptchaSecretType . V2 ) ,
[ "Sitekey2" ] = new RecaptchaConfiguration ( RecaptchaDefaults . TestSecretKey , RecaptchaSecretType . V2Android ) ,
[ "Sitekey3" ] = new RecaptchaConfiguration ( RecaptchaDefaults . TestSecretKey , RecaptchaSecretType . V3 ) ,
} )
. AddTokenHeaderProvider ( )
. AddConfigurationHeaderProvider ( )
. AddRecaptchaHttpClient ( configureHttpBuilder : httpBuilder =>
{
// You can setup Polly here
httpBuilder . AddTransientHttpErrorPolicy ( builder => builder . WaitAndRetryAsync ( new [ ]
{
TimeSpan . FromSeconds ( 1 ) ,
TimeSpan . FromSeconds ( 5 ) ,
TimeSpan . FromSeconds ( 10 )
} ) ) ;
} )
. UseGoogleUrl ( ) ;
// UseGlobalUrl(); // will use recaptcha.net mirror. Useful for countries where google.com is blocked.
// UseCustomUrl("your_url"); // will use custom url for validation.
}
ValidateRecaptcha
к действию. Configurations
определяют разрешенные конфигурации для действия. Если ничего не указано, вы можете использовать любую конфигурацию. Если указан только один, токен конфигурации можно опустить.
AllowedAction
работает с V2 или V3. Не указывайте пропуск проверки действия.
MinimumScore
работает с V3. По умолчанию 0.5
.
UseModelErrors
определяет, будут ли ошибки добавлены в модель MVC. Правда по умолчанию.
Вы можете передать ответ рекапчи на действие, используя FromRecaptchaResponseAttribute
с любым параметром метода, полученным из IRecaptchaResponse
.
[ HttpPost ]
[ AllowAnonymous ]
[ ValidateRecaptcha ( Configurations = new [ ] { "Sitekey1" , "Sitekey2" } , MinimumScore = 0.7 , AllowedAction = "register" ) ]
public async Task < ActionResult > ProtectedByV3AndV2 ( [ FromRecaptchaResponse ] RecaptchaResponse response )
{
// Your Code
}
Ответ reCAPTCHA должен быть передан в HTTP-заголовке с указанным ключом или g-recaptcha-response
.
Ключ конфигурации reCAPTCHA следует передавать в HTTP-заголовке с указанным ключом или g-recaptcha-type
если в хранилище имеется более одной конфигурации или указано в Configurations
.
Если токен, переданный на стороне клиента, является недействительным, ошибки модели будут добавлены в ModelState
. См. RecaptchaErrorCodes
, ValidateRecaptchaAttribute.ErrorCodes
и официальную документацию.
Массачусетский технологический институт