diff --git a/README.md b/README.md index e412558..5883f92 100644 --- a/README.md +++ b/README.md @@ -219,6 +219,12 @@ namespace DNTCaptcha.TestWebApp.Controllers } ``` +- If you use `Swagger` make sure to install [Swashbuckle.AspNetCore.SwaggerGen.ConventionalRouting](https://github.com/chsakell/Swashbuckle.AspNetCore.SwaggerGen.ConventionalRouting) Nuget Package and add it like so: + +```csharp +services.AddSwaggerGenWithConventionalRoutes(); +``` + ## How to choose a correct storage mode If your environment is distributed and you are using a `Session (UseSessionStorageProvider())` diff --git a/src/DNTCaptcha.Core/DNTCaptchaApiProvider.cs b/src/DNTCaptcha.Core/DNTCaptchaApiProvider.cs index e111b24..c517a98 100644 --- a/src/DNTCaptcha.Core/DNTCaptchaApiProvider.cs +++ b/src/DNTCaptcha.Core/DNTCaptchaApiProvider.cs @@ -113,15 +113,19 @@ private string getCaptchaImageUrl(DNTCaptchaTagHelperHtmlAttributes captchaAttri var encryptSerializedValues = _captchaProtectionProvider.Encrypt(_serializationProvider.Serialize(values)); + string controllerName = nameof(DNTCaptchaImageController).Replace("Controller", string.Empty, StringComparison.Ordinal); + if (!String.IsNullOrEmpty(_captchaOptions.CaptchaImageControllerNameTemplate)) + controllerName = _captchaOptions.CaptchaImageControllerNameTemplate; + var actionUrl = captchaAttributes.UseRelativeUrls ? _urlHelper.Action(nameof(DNTCaptchaImageController.Show), - nameof(DNTCaptchaImageController).Replace("Controller", string.Empty, StringComparison.Ordinal), new + controllerName, new { data = encryptSerializedValues, area = "" }) : _urlHelper.Action(nameof(DNTCaptchaImageController.Show), - nameof(DNTCaptchaImageController).Replace("Controller", string.Empty, StringComparison.Ordinal), new + controllerName, new { data = encryptSerializedValues, area = ""