Spaier.Recaptcha
3.2.0
dotnet add package Spaier.Recaptcha --version 3.2.0
NuGet\Install-Package Spaier.Recaptcha -Version 3.2.0
<PackageReference Include="Spaier.Recaptcha" Version="3.2.0" />
<PackageVersion Include="Spaier.Recaptcha" Version="3.2.0" />
<PackageReference Include="Spaier.Recaptcha" />
paket add Spaier.Recaptcha --version 3.2.0
#r "nuget: Spaier.Recaptcha, 3.2.0"
#addin nuget:?package=Spaier.Recaptcha&version=3.2.0
#tool nuget:?package=Spaier.Recaptcha&version=3.2.0
Spaier.Recaptcha
Prerequisites
Table of Contents
Installation
Nuget
Install-Package Spaier.Recaptcha
.NET CLI
dotnet add package Spaier.Recaptcha
Usage
- Add recaptcha services in your Startup.cs
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.
}
- Apply
ValidateRecaptcha
attribute to an action.
Configurations
defines allowed configurations for an action.
If none is specified you can use any configuration.
If only one is specified you can omit configuration token.
AllowedAction
works with V2 or V3.
Don't specify to skip action check.
MinimumScore
works with V3.
Defaults to 0.5
.
UseModelErrors
determines whether errors will be added to MVC Model.
True by default.
You can pass a recaptcha response to an action by using the FromRecaptchaResponseAttribute
with
any method parameter derived from the IRecaptchaResponse
.
[HttpPost]
[AllowAnonymous]
[ValidateRecaptcha(Configurations = new[] { "Sitekey1", "Sitekey2" }, MinimumScore = 0.7, AllowedAction = "register")]
public async Task<ActionResult> ProtectedByV3AndV2([FromRecaptchaResponse] RecaptchaResponse response)
{
// Your Code
}
A reCAPTCHA's response should be passed in a HTTP header with the specified key or g-recaptcha-response
.
A reCAPTCHA's configuration key should be passed in a HTTP header with the specified key or g-recaptcha-type
if there's more than one configuration in store or specified in Configurations
.
If token passed by client-side is invalid model errors will be added to ModelState
.
See RecaptchaErrorCodes
, ValidateRecaptchaAttribute.ErrorCodes
and official docs
License
MIT
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Microsoft.AspNet.WebApi.Client (>= 5.2.6)
- Microsoft.AspNetCore.Mvc (>= 2.1.0)
- Microsoft.Extensions.Http (>= 2.1.0)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 2.1.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
3.2.0 | 2,098 | 9/25/2018 |