From 597baaccbacb4f37cd49ef0a103f92fe81e18343 Mon Sep 17 00:00:00 2001
From: "patrick.brugiere"
Date: Wed, 17 Jan 2024 17:43:09 +0100
Subject: [PATCH] =?UTF-8?q?je=20suis=20pas=20encore=20sur=20de=20comment?=
=?UTF-8?q?=20faire=20pour=20li=C3=A9=20l'authentification=20au=20projet?=
=?UTF-8?q?=20principales?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../adminBlazor.Api/adminBlazor.Api.csproj | 1 +
Project/adminBlazor/adminBlazor.sln | 9 +++
Project/adminBlazor/adminBlazor/App.razor | 5 +-
.../adminBlazor/adminBlazor/Models/AppUser.cs | 9 ---
.../adminBlazor/Models/CurrentUser..cs | 9 ---
.../adminBlazor/Models/LoginRequest.cs | 13 ----
.../adminBlazor/Models/RegisterRequest.cs | 17 -----
.../Pages/Authentication/Login.razor | 27 -------
.../Pages/Authentication/Login.razor.cs | 32 --------
.../Pages/Authentication/Register.razor | 29 -------
.../Pages/Authentication/Register.razor.cs | 32 --------
.../adminBlazor/adminBlazor/Pages/Index.razor | 3 +-
Project/adminBlazor/adminBlazor/Program.cs | 10 ++-
.../adminBlazor/Services/AuthService.cs | 53 -------------
.../Services/CustomStateProvider.cs | 75 -------------------
.../adminBlazor/Services/IAuthService.cs | 13 ----
.../adminBlazor/Shared/AuthLayout.razor | 6 --
.../adminBlazor/Shared/MainLayout.razor | 1 +
.../adminBlazor/adminBlazor/_Imports.razor | 2 +-
.../adminBlazor/adminBlazor.csproj | 1 +
20 files changed, 24 insertions(+), 323 deletions(-)
delete mode 100644 Project/adminBlazor/adminBlazor/Models/AppUser.cs
delete mode 100644 Project/adminBlazor/adminBlazor/Models/CurrentUser..cs
delete mode 100644 Project/adminBlazor/adminBlazor/Models/LoginRequest.cs
delete mode 100644 Project/adminBlazor/adminBlazor/Models/RegisterRequest.cs
delete mode 100644 Project/adminBlazor/adminBlazor/Pages/Authentication/Login.razor
delete mode 100644 Project/adminBlazor/adminBlazor/Pages/Authentication/Login.razor.cs
delete mode 100644 Project/adminBlazor/adminBlazor/Pages/Authentication/Register.razor
delete mode 100644 Project/adminBlazor/adminBlazor/Pages/Authentication/Register.razor.cs
delete mode 100644 Project/adminBlazor/adminBlazor/Services/AuthService.cs
delete mode 100644 Project/adminBlazor/adminBlazor/Services/CustomStateProvider.cs
delete mode 100644 Project/adminBlazor/adminBlazor/Services/IAuthService.cs
delete mode 100644 Project/adminBlazor/adminBlazor/Shared/AuthLayout.razor
diff --git a/Project/adminBlazor/adminBlazor.Api/adminBlazor.Api.csproj b/Project/adminBlazor/adminBlazor.Api/adminBlazor.Api.csproj
index 311d69b..792e264 100644
--- a/Project/adminBlazor/adminBlazor.Api/adminBlazor.Api.csproj
+++ b/Project/adminBlazor/adminBlazor.Api/adminBlazor.Api.csproj
@@ -9,6 +9,7 @@
+
diff --git a/Project/adminBlazor/adminBlazor.sln b/Project/adminBlazor/adminBlazor.sln
index 564e351..2aec274 100644
--- a/Project/adminBlazor/adminBlazor.sln
+++ b/Project/adminBlazor/adminBlazor.sln
@@ -4,9 +4,14 @@ Microsoft Visual Studio Solution File, Format Version 12.00
VisualStudioVersion = 17.8.34330.188
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "adminBlazor", "adminBlazor\adminBlazor.csproj", "{5985AE7A-DA9C-4A68-80E0-2D92926C1FB5}"
+ ProjectSection(ProjectDependencies) = postProject
+ {7A7CE974-02E6-4248-B5C5-54A04724327B} = {7A7CE974-02E6-4248-B5C5-54A04724327B}
+ EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "adminBlazor.Api", "adminBlazor.Api\adminBlazor.Api.csproj", "{69C7F430-9B80-4253-B572-FDBC90076C5E}"
EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DemoAuthentication", "..\..\..\..\..\Downloads\Authentication\DemoAuthentication\DemoAuthentication\DemoAuthentication.csproj", "{7A7CE974-02E6-4248-B5C5-54A04724327B}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -21,6 +26,10 @@ Global
{69C7F430-9B80-4253-B572-FDBC90076C5E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{69C7F430-9B80-4253-B572-FDBC90076C5E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{69C7F430-9B80-4253-B572-FDBC90076C5E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7A7CE974-02E6-4248-B5C5-54A04724327B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7A7CE974-02E6-4248-B5C5-54A04724327B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7A7CE974-02E6-4248-B5C5-54A04724327B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {7A7CE974-02E6-4248-B5C5-54A04724327B}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/Project/adminBlazor/adminBlazor/App.razor b/Project/adminBlazor/adminBlazor/App.razor
index 09ed54d..ba3e3db 100644
--- a/Project/adminBlazor/adminBlazor/App.razor
+++ b/Project/adminBlazor/adminBlazor/App.razor
@@ -1,4 +1,4 @@
-
+
@@ -10,5 +10,4 @@
Sorry, there's nothing at this address.
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/Project/adminBlazor/adminBlazor/Models/AppUser.cs b/Project/adminBlazor/adminBlazor/Models/AppUser.cs
deleted file mode 100644
index 7121a6a..0000000
--- a/Project/adminBlazor/adminBlazor/Models/AppUser.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-namespace adminBlazor.Models
-{
- public class AppUser
- {
- public string Password { get; set; }
- public List Roles { get; set; }
- public string UserName { get; set; }
- }
-}
diff --git a/Project/adminBlazor/adminBlazor/Models/CurrentUser..cs b/Project/adminBlazor/adminBlazor/Models/CurrentUser..cs
deleted file mode 100644
index 4eab865..0000000
--- a/Project/adminBlazor/adminBlazor/Models/CurrentUser..cs
+++ /dev/null
@@ -1,9 +0,0 @@
-namespace adminBlazor.Models
-{
- public class CurrentUser
- {
- public Dictionary Claims { get; set; }
- public bool IsAuthenticated { get; set; }
- public string UserName { get; set; }
- }
-}
diff --git a/Project/adminBlazor/adminBlazor/Models/LoginRequest.cs b/Project/adminBlazor/adminBlazor/Models/LoginRequest.cs
deleted file mode 100644
index 0d4af4b..0000000
--- a/Project/adminBlazor/adminBlazor/Models/LoginRequest.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-using System.ComponentModel.DataAnnotations;
-
-namespace adminBlazor.Models
-{
- public class LoginRequest
- {
- [Required]
- public string Password { get; set; }
-
- [Required]
- public string UserName { get; set; }
- }
-}
diff --git a/Project/adminBlazor/adminBlazor/Models/RegisterRequest.cs b/Project/adminBlazor/adminBlazor/Models/RegisterRequest.cs
deleted file mode 100644
index 523ecad..0000000
--- a/Project/adminBlazor/adminBlazor/Models/RegisterRequest.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-using System.ComponentModel.DataAnnotations;
-
-namespace adminBlazor.Models
-{
- public class RegisterRequest
- {
- [Required]
- public string Password { get; set; }
-
- [Required]
- [Compare(nameof(Password), ErrorMessage = "Passwords do not match!")]
- public string PasswordConfirm { get; set; }
-
- [Required]
- public string UserName { get; set; }
- }
-}
diff --git a/Project/adminBlazor/adminBlazor/Pages/Authentication/Login.razor b/Project/adminBlazor/adminBlazor/Pages/Authentication/Login.razor
deleted file mode 100644
index 9cb242b..0000000
--- a/Project/adminBlazor/adminBlazor/Pages/Authentication/Login.razor
+++ /dev/null
@@ -1,27 +0,0 @@
-@page "/login"
-@layout AuthLayout
-
-
- Login
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Create account
-
-
-
diff --git a/Project/adminBlazor/adminBlazor/Pages/Authentication/Login.razor.cs b/Project/adminBlazor/adminBlazor/Pages/Authentication/Login.razor.cs
deleted file mode 100644
index 6b63d96..0000000
--- a/Project/adminBlazor/adminBlazor/Pages/Authentication/Login.razor.cs
+++ /dev/null
@@ -1,32 +0,0 @@
-using adminBlazor.Models;
-using adminBlazor.Services;
-using Microsoft.AspNetCore.Components;
-
-namespace adminBlazor.Pages.Authentication
-{
- public partial class Login
- {
- [Inject]
- public CustomStateProvider AuthStateProvider { get; set; }
-
- [Inject]
- public NavigationManager NavigationManager { get; set; }
-
- private string error { get; set; }
- private LoginRequest loginRequest { get; set; } = new LoginRequest();
-
- private async Task OnSubmit()
- {
- error = null;
- try
- {
- await AuthStateProvider.Login(loginRequest);
- NavigationManager.NavigateTo("");
- }
- catch (Exception ex)
- {
- error = ex.Message;
- }
- }
- }
-}
diff --git a/Project/adminBlazor/adminBlazor/Pages/Authentication/Register.razor b/Project/adminBlazor/adminBlazor/Pages/Authentication/Register.razor
deleted file mode 100644
index a8e7602..0000000
--- a/Project/adminBlazor/adminBlazor/Pages/Authentication/Register.razor
+++ /dev/null
@@ -1,29 +0,0 @@
-@page "/register"
-@layout AuthLayout
-
-
- Register
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Already have an account? Click here to login
-
-
\ No newline at end of file
diff --git a/Project/adminBlazor/adminBlazor/Pages/Authentication/Register.razor.cs b/Project/adminBlazor/adminBlazor/Pages/Authentication/Register.razor.cs
deleted file mode 100644
index f6b3178..0000000
--- a/Project/adminBlazor/adminBlazor/Pages/Authentication/Register.razor.cs
+++ /dev/null
@@ -1,32 +0,0 @@
-using adminBlazor.Models;
-using adminBlazor.Services;
-using Microsoft.AspNetCore.Components;
-
-namespace adminBlazor.Pages.Authentication
-{
- public partial class Register
- {
- [Inject]
- public CustomStateProvider AuthStateProvider { get; set; }
-
- [Inject]
- public NavigationManager NavigationManager { get; set; }
-
- private string error { get; set; }
- private RegisterRequest registerRequest { get; set; } = new RegisterRequest();
-
- private async Task OnSubmit()
- {
- error = null;
- try
- {
- await AuthStateProvider.Register(registerRequest);
- NavigationManager.NavigateTo("");
- }
- catch (Exception ex)
- {
- error = ex.Message;
- }
- }
- }
-}
diff --git a/Project/adminBlazor/adminBlazor/Pages/Index.razor b/Project/adminBlazor/adminBlazor/Pages/Index.razor
index 5895cc0..1f37639 100644
--- a/Project/adminBlazor/adminBlazor/Pages/Index.razor
+++ b/Project/adminBlazor/adminBlazor/Pages/Index.razor
@@ -11,4 +11,5 @@
CurrentCulture: @CultureInfo.CurrentCulture
-
\ No newline at end of file
+
+
diff --git a/Project/adminBlazor/adminBlazor/Program.cs b/Project/adminBlazor/adminBlazor/Program.cs
index f59fe3a..89d27de 100644
--- a/Project/adminBlazor/adminBlazor/Program.cs
+++ b/Project/adminBlazor/adminBlazor/Program.cs
@@ -12,13 +12,18 @@ using System.Globalization;
using Microsoft.Extensions.Options;
using Microsoft.Net.Http.Headers;
using adminBlazor.Models;
+using adminBlazor;
+using Microsoft.AspNetCore.Components.Authorization;
var builder = WebApplication.CreateBuilder(args);
- // Add services to the container.
- builder.Services.AddRazorPages();
+
+
+// Add services to the container.
+
+builder.Services.AddRazorPages();
builder.Services.AddServerSideBlazor();
builder.Services.AddSingleton();
@@ -94,4 +99,3 @@ builder.Services.AddControllers();
app.Run();
-
diff --git a/Project/adminBlazor/adminBlazor/Services/AuthService.cs b/Project/adminBlazor/adminBlazor/Services/AuthService.cs
deleted file mode 100644
index 96ece5b..0000000
--- a/Project/adminBlazor/adminBlazor/Services/AuthService.cs
+++ /dev/null
@@ -1,53 +0,0 @@
-using adminBlazor.Models;
-using System.Security.Claims;
-
-namespace adminBlazor.Services
-{
- public class AuthService : IAuthService
- {
- private static readonly List CurrentUser;
-
- static AuthService()
- {
- CurrentUser = new List
- {
- new AppUser { UserName = "Admin", Password = "123456", Roles = new List { "admin" } }
- };
- }
-
- public CurrentUser GetUser(string userName)
- {
- var user = CurrentUser.FirstOrDefault(w => w.UserName == userName);
-
- if (user == null)
- {
- throw new Exception("User name or password invalid !");
- }
-
- var claims = new List();
- claims.AddRange(user.Roles.Select(s => new Claim(ClaimTypes.Role, s)));
-
- return new CurrentUser
- {
- IsAuthenticated = true,
- UserName = user.UserName,
- Claims = claims.ToDictionary(c => c.Type, c => c.Value)
- };
- }
-
- public void Login(LoginRequest loginRequest)
- {
- var user = CurrentUser.FirstOrDefault(w => w.UserName == loginRequest.UserName && w.Password == loginRequest.Password);
-
- if (user == null)
- {
- throw new Exception("User name or password invalid !");
- }
- }
-
- public void Register(RegisterRequest registerRequest)
- {
- CurrentUser.Add(new AppUser { UserName = registerRequest.UserName, Password = registerRequest.Password, Roles = new List { "guest" } });
- }
- }
-}
diff --git a/Project/adminBlazor/adminBlazor/Services/CustomStateProvider.cs b/Project/adminBlazor/adminBlazor/Services/CustomStateProvider.cs
deleted file mode 100644
index ab9d69e..0000000
--- a/Project/adminBlazor/adminBlazor/Services/CustomStateProvider.cs
+++ /dev/null
@@ -1,75 +0,0 @@
-using adminBlazor.Models;
-using Microsoft.AspNetCore.Components.Authorization;
-using System.Security.Claims;
-
-namespace adminBlazor.Services
-{
- public class CustomStateProvider : AuthenticationStateProvider
- {
- private readonly IAuthService _authService;
- private CurrentUser _currentUser;
-
- public CustomStateProvider(IAuthService authService)
- {
- this._authService = authService;
- }
-
- public override async Task GetAuthenticationStateAsync()
- {
- var identity = new ClaimsIdentity();
- try
- {
- var userInfo = GetCurrentUser();
- if (userInfo.IsAuthenticated)
- {
- var claims = new[] { new Claim(ClaimTypes.Name, _currentUser.UserName) }.Concat(_currentUser.Claims.Select(c => new Claim(c.Key, c.Value)));
- identity = new ClaimsIdentity(claims, "Server authentication");
- }
- }
- catch (HttpRequestException ex)
- {
- Console.WriteLine("Request failed:" + ex);
- }
-
- return new AuthenticationState(new ClaimsPrincipal(identity));
- }
-
- public async Task Login(LoginRequest loginParameters)
- {
- _authService.Login(loginParameters);
-
- // No error - Login the user
- var user = _authService.GetUser(loginParameters.UserName);
- _currentUser = user;
-
- NotifyAuthenticationStateChanged(GetAuthenticationStateAsync());
- }
-
- public async Task Logout()
- {
- _currentUser = null;
- NotifyAuthenticationStateChanged(GetAuthenticationStateAsync());
- }
-
- public async Task Register(RegisterRequest registerParameters)
- {
- _authService.Register(registerParameters);
-
- // No error - Login the user
- var user = _authService.GetUser(registerParameters.UserName);
- _currentUser = user;
-
- NotifyAuthenticationStateChanged(GetAuthenticationStateAsync());
- }
-
- private CurrentUser GetCurrentUser()
- {
- if (_currentUser != null && _currentUser.IsAuthenticated)
- {
- return _currentUser;
- }
-
- return new CurrentUser();
- }
- }
-}
diff --git a/Project/adminBlazor/adminBlazor/Services/IAuthService.cs b/Project/adminBlazor/adminBlazor/Services/IAuthService.cs
deleted file mode 100644
index 84dc7ca..0000000
--- a/Project/adminBlazor/adminBlazor/Services/IAuthService.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-using adminBlazor.Models;
-
-namespace adminBlazor.Services
-{
- public interface IAuthService
- {
- CurrentUser GetUser(string userName);
-
- void Login(LoginRequest loginRequest);
-
- void Register(RegisterRequest registerRequest);
- }
-}
diff --git a/Project/adminBlazor/adminBlazor/Shared/AuthLayout.razor b/Project/adminBlazor/adminBlazor/Shared/AuthLayout.razor
deleted file mode 100644
index ae7bc2a..0000000
--- a/Project/adminBlazor/adminBlazor/Shared/AuthLayout.razor
+++ /dev/null
@@ -1,6 +0,0 @@
-@inherits LayoutComponentBase
-
\ No newline at end of file
diff --git a/Project/adminBlazor/adminBlazor/Shared/MainLayout.razor b/Project/adminBlazor/adminBlazor/Shared/MainLayout.razor
index 5192709..47611ac 100644
--- a/Project/adminBlazor/adminBlazor/Shared/MainLayout.razor
+++ b/Project/adminBlazor/adminBlazor/Shared/MainLayout.razor
@@ -10,6 +10,7 @@
+
diff --git a/Project/adminBlazor/adminBlazor/_Imports.razor b/Project/adminBlazor/adminBlazor/_Imports.razor
index 7df73a7..1c48b6e 100644
--- a/Project/adminBlazor/adminBlazor/_Imports.razor
+++ b/Project/adminBlazor/adminBlazor/_Imports.razor
@@ -11,4 +11,4 @@
@using Blazorise.DataGrid
@using adminBlazor.Services
@using Blazored.Modal
-@using Blazored.Modal.Services
\ No newline at end of file
+@using Blazored.Modal.Services
diff --git a/Project/adminBlazor/adminBlazor/adminBlazor.csproj b/Project/adminBlazor/adminBlazor/adminBlazor.csproj
index fea2e3b..e5a8f99 100644
--- a/Project/adminBlazor/adminBlazor/adminBlazor.csproj
+++ b/Project/adminBlazor/adminBlazor/adminBlazor.csproj
@@ -16,6 +16,7 @@
+