.net Core Mvc Authentication Example

6 min read Jun 03, 2024
.net Core Mvc Authentication Example

Authentification avec ASP.NET Core MVC : Un exemple pratique

Introduction

ASP.NET Core MVC offre un système d'authentification flexible et puissant pour sécuriser vos applications web. Dans cet article, nous allons explorer un exemple concret d'implémentation de l'authentification dans une application ASP.NET Core MVC.

Configuration de l'authentification

  1. Création d'un projet ASP.NET Core MVC : Commencez par créer un nouveau projet ASP.NET Core MVC en utilisant Visual Studio ou l'interface de ligne de commande.

  2. Activation de l'authentification : Dans le template de projet, sélectionnez l'option "Individual User Accounts" (ou "Individuelle") pour activer l'authentification basée sur les utilisateurs. Cela ajoutera automatiquement les dépendances et la configuration nécessaires.

  3. Configuration de l'accès aux données : ASP.NET Core MVC utilise Entity Framework Core pour gérer les données. Assurez-vous que vous avez configuré une connexion à votre base de données, par exemple, une base de données SQL Server.

Implémentation de l'authentification

  1. Contrôleurs et vues : Créez des contrôleurs et des vues pour gérer les pages de connexion, d'inscription et de profil utilisateur. Par exemple, un contrôleur AccountController pourrait gérer les actions de connexion (Login), d'inscription (Register) et de déconnexion (Logout).

  2. Protection des ressources : Utilisez des attributs comme Authorize pour restreindre l'accès à des actions spécifiques aux utilisateurs authentifiés. Par exemple, vous pourriez protéger une page d'administration avec l'attribut [Authorize(Roles = "Admin")].

  3. Gestion des rôles : ASP.NET Core MVC vous permet de gérer les rôles des utilisateurs. Vous pouvez attribuer des rôles aux utilisateurs lors de leur inscription ou les modifier ultérieurement.

Code d'exemple

AccountController.cs

using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Authentication;
using System.Threading.Tasks;

namespace MyWebApplication.Controllers
{
    public class AccountController : Controller
    {
        [HttpGet]
        public IActionResult Login()
        {
            return View();
        }

        [HttpPost]
        public async Task Login(string username, string password)
        {
            // Vérification des identifiants
            if (username == "admin" && password == "password")
            {
                // Authentification réussie
                await HttpContext.SignInAsync(
                    Microsoft.AspNetCore.Http.Authentication.AuthenticationScheme.Cookies, 
                    new ClaimsPrincipal(new ClaimsIdentity(new[] { new Claim(ClaimTypes.Name, username) }, CookieAuthenticationDefaults.AuthenticationScheme)));
                return RedirectToAction("Index", "Home");
            }
            else
            {
                // Échec de l'authentification
                ViewData["ErrorMessage"] = "Nom d'utilisateur ou mot de passe incorrect.";
                return View();
            }
        }

        [HttpGet]
        public IActionResult Register()
        {
            return View();
        }

        [HttpPost]
        public IActionResult Register(string username, string password)
        {
            // Enregistrement de l'utilisateur dans la base de données
            // ...

            return RedirectToAction("Login");
        }

        [Authorize]
        public IActionResult Profile()
        {
            return View();
        }

        public async Task Logout()
        {
            await HttpContext.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme);
            return RedirectToAction("Index", "Home");
        }
    }
}

Views/Account/Login.cshtml

@using Microsoft.AspNetCore.Mvc.TagHelpers
@if (ViewData.ContainsKey("ErrorMessage")) {
@ViewData["ErrorMessage"]
}

Conclusion

Ce code d'exemple montre comment implémenter une authentification de base dans une application ASP.NET Core MVC. Vous pouvez l'adapter à vos propres besoins en ajoutant des fonctionnalités supplémentaires comme la validation des mots de passe, la gestion des rôles, la sécurité des mots de passe, etc. En utilisant ASP.NET Core MVC, vous pouvez facilement sécuriser vos applications web et contrôler l'accès aux ressources sensibles.

Related Post


Featured Posts