Intégrer reCaptcha à votre application ASP.NET MVC

Intégrer reCaptcha à votre application ASP.NET MVC

Un Captcha, c’est un test de défi-réponse utilisé dans le domaine de l’informatique, ayant pour but de s’assurer qu’une réponse n’est pas générée par un ordinateur mais bien par un internaute. Lors de la construction de sites web publique, le Captcha est très important afin d’éviter les script et les robots collecteurs sur votre site web. Pour intégrer reCaptcha à votre application ASP.NET MVC, il vous faudra tout d’abord vous inscrire afin d’obtenir votre clé unique et ensuite télécharger la bibliothèque .NET que vous allez ajouté en référence à votre projet.

Une fois la référence à reCaptcha.dll ajouté à votre projet MVC, inséré dans votre web.config sous la section appSettings la clé publique et privé que vous avez obtenue.

<add key="ReCaptchaPrivateKey" value="XXXXXXXXXXXXXX"/>
<add key="ReCaptchaPublicKey" value="XXXXXXXXXXXXXX"/>

Par la suite, ajouté le code [RecaptchaControlMvc.CaptchaValidatorAttribute] à votre fichier AccountController sous la méthode Register.

[HttpPost]
[RecaptchaControlMvc.CaptchaValidatorAttribute]
public ActionResult Register(RegisterModel model)
{
  ...
}

Ajouté ensuite le captcha à la logique de votre fonction d’enregistrement.

[HttpPost]
[RecaptchaControlMvc.CaptchaValidatorAttribute]
public ActionResult Register(RegisterModel model, bool captchaValid)
{
    if (!captchaValid)
    {
        ModelState.AddModelError("", "Erreur de vérification");
    }
    else
    {
        if (ModelState.IsValid)
        {
            MembershipCreateStatus createStatus;
            Membership.CreateUser(model.UserName, model.Password, 
                                  model.Email, null, null, true, null, 
                                  out createStatus);
 
            if (createStatus == MembershipCreateStatus.Success)
            {
                FormsAuthentication.SetAuthCookie(model.UserName, false);
                return RedirectToAction("Index", "Home");
            }
            else
            {
                ModelState.AddModelError("", ErrorCodeToString(createStatus));
            }
        }
    }
    return View(model);
}

Ensuite, il ne reste plus qu’à inséré le captcha dans votre vue Register.cshtml.

@Html.Raw(Html.GenerateCaptcha())

Tags: , , , , , , , , , , ,



Laisser un commentaire

Suivez nous à travers les réseaux sociaux - FaceBook Twitter RSS