Sunuer

Sunuer Manage Sunuer Easy Périphériques
Présentation du projet

Structure du projet


SunuerManage ├─ appsettings.json # Fichier de configuration de l’application, inclut la chaîne de connexion à la DB et divers paramètres ├─ bin # Répertoire des binaires compilés │ ├─ Debug # Sortie de compilation en mode debug │ └─ Release # Sortie de compilation en mode release ├─ Code # Code de logique métier et couche d’accès aux données │ ├─ Admin # Logique métier liée aux administrateurs │ │ ├─ AdminDal.cs # Couche d’accès aux données pour les administrateurs │ │ ├─ AdminModel.cs # Modèle de données pour les administrateurs │ │ ├─ AdminPowerDal.cs # Couche d’accès aux données pour les permissions administrateur │ │ ├─ AdminPowerModel.cs # Modèle de données pour les permissions administrateur │ │ ├─ AdminRolesDal.cs # Couche d’accès aux données pour les rôles administrateur │ │ └─ AdminRolesModel.cs # Modèle de données pour les rôles administrateur │ ├─ Articles # Logique métier liée aux articles │ │ ├─ ArticleCategoryDal.cs # Couche d’accès aux données pour les catégories d’articles │ │ ├─ ArticleCategoryModel.cs # Modèle de données pour les catégories d’articles │ │ ├─ ArticlesDal.cs # Couche d’accès aux données pour les articles │ │ └─ ArticlesModel.cs # Modèle de données pour les articles │ └─ ManageSet # Logique métier liée aux paramètres d’administration │ └─ ManageSetModel.cs # Modèle de données pour les paramètres d’administration ├─ Controllers # Contrôleurs (API), gèrent les requêtes HTTP │ ├─ Admin # Contrôleurs liés aux administrateurs │ │ ├─ AdminController.cs # Contrôleur d’administrateur │ │ ├─ AdminPowerController.cs # Contrôleur des permissions administrateur │ │ └─ AdminRolesController.cs # Contrôleur des rôles d’administrateur │ ├─ Articless # Contrôleurs liés aux articles │ │ ├─ ArticleCategoryController.cs # Contrôleur des catégories d’articles │ │ └─ ArticlesController.cs # Contrôleur des articles │ ├─ Files # Contrôleurs liés aux fichiers │ │ ├─ CaptchaController.cs # Contrôleur pour les CAPTCHA │ │ ├─ FilesController.cs # Contrôleur pour le téléchargement de fichiers │ │ └─ QRCodeController.cs # Contrôleur pour la génération de QR codes │ └─ ManageSets # Contrôleurs pour la configuration d’administration │ └─ ManageSetController.cs # Contrôleur pour la configuration d’administration ├─ Data # Couche d’accès aux données et contexte de base de données │ ├─ ApplicationDbContext.cs # Contexte de base de données pour interagir avec la DB │ └─ SunuerManage.sql # Fichier de script de base de données (backup/restore) ├─ Pages # Pages Razor pour l’affichage frontal │ ├─ About.cshtml # Page “À propos” │ ├─ Cases.cshtml # Page de présentation de cas │ ├─ Contact.cshtml # Page de contact │ ├─ Error.cshtml # Page d’erreur │ ├─ Index.cshtml # Page d’accueil │ ├─ News.cshtml # Page de nouvelles │ ├─ newsview.cshtml # Page de détails de nouvelles │ ├─ Manage # Pages de la console d’administration │ │ ├─ Admins # Pages pour la gestion des administrateurs │ │ │ ├─ AdminAdd.cshtml # Page d’ajout d’un administrateur │ │ │ ├─ AdminEdt.cshtml # Page d’édition d’un administrateur │ │ │ ├─ AdminList.cshtml # Liste des administrateurs │ │ │ ├─ AdminPassWord.cshtml # Page de modification du mot de passe de l’administrateur │ │ │ ├─ AdminPowerAdd.cshtml # Page d’ajout de permissions administrateur │ │ │ ├─ AdminPowerEdt.cshtml # Page d’édition des permissions administrateur │ │ │ ├─ AdminPowerList.cshtml # Liste des permissions administrateur │ │ │ ├─ AdminRolesAdd.cshtml # Page d’ajout de rôles administrateur │ │ │ ├─ AdminRolesEdt.cshtml # Page d’édition des rôles administrateur │ │ │ ├─ AdminRolesList.cshtml # Liste des rôles administrateur │ │ │ ├─ Adminview.cshtml # Page de détail d’administrateur │ │ ├─ admin_index.cshtml # Page d’accueil de l’administration │ │ ├─ Agreement.cshtml # Page de l’accord d’utilisateur │ │ ├─ Articless # Pages de gestion des articles │ │ │ ├─ ArticleCategoryAdd.cshtml # Page d’ajout de catégorie d’articles │ │ │ ├─ ArticleCategoryEdt.cshtml # Page d’édition de catégorie d’articles │ │ │ ├─ ArticleCategoryList.cshtml # Liste des catégories d’articles │ │ │ ├─ ArticlesAdd.cshtml # Page d’ajout d’article │ │ │ ├─ ArticlesEdt.cshtml # Page d’édition d’article │ │ │ ├─ ArticlesList.cshtml # Liste des articles │ │ ├─ consoles # Pages de la console │ │ │ ├─ console.cshtml # Page de console │ │ ├─ Login.cshtml # Page de connexion │ │ ├─ LoginOut.cshtml # Page de déconnexion │ │ └─ ManageSets # Pages de configuration d’administration │ │ ├─ ManageSetEdt.cshtml # Page d’édition des paramètres d’administration │ ├─ Shared # Vues et layouts partagés │ │ ├─ Menu.cshtml # Vue du menu │ │ ├─ _indexLayout.cshtml # Layout de la page d’accueil │ │ ├─ _Layout.cshtml # Layout par défaut │ │ ├─ _ManageIndexLayout.cshtml # Layout pour l’administration │ │ └─ _ValidationScriptsPartial.cshtml # Vue partielle pour les scripts de validation │ ├─ _ViewImports.cshtml # Fichier d’importation de vues, pour les espaces de noms │ └─ _ViewStart.cshtml # Fichier de démarrage des vues, définit le layout ├─ Tools # Classes d’outils │ ├─ ApiResponse.cs # Classe de réponse API - format unifié │ ├─ CBC.cs # Classe d’aide pour le chiffrement/déchiffrement │ ├─ ConfigurationHelper.cs # Récupère les valeurs depuis appsettings.json │ ├─ DataTableToList.cs # Convertit un DataTable en liste │ ├─ DBHelper.cs # Classe helper pour la base de données │ ├─ JsEncryptHelper.cs # Classe d’aide pour le chiffrement JS │ └─ Tools.cs # Classe d’outils généraux ├─ wwwroot # Ressources statiques │ ├─ css # Feuilles de style CSS │ ├─ favicon.ico # Icône du site │ ├─ images # Ressources d’images │ ├─ js # Fichiers JavaScript │ └─ Uploadfile # Répertoire pour les fichiers téléversés ├─ Program.cs # Point d’entrée de l’application ├─ Properties # Fichiers de propriétés du projet │ ├─ launchSettings.json # Fichier de configuration du lancement │ └─ PublishProfiles # Profils de publication │ ├─ FolderProfile.pubxml # Profil de publication dans un dossier │ └─ FolderProfile.pubxml.user # Profil utilisateur pour la publication dans un dossier ├─ Sunuer Manage Disclaimer (Read Carefully).txt # Fichier de non-responsabilité du projet
├─ SunuerManage.csproj # Fichier de projet, inclut la configuration et les dépendances ├─ SunuerManage.csproj.user # Configuration spécifique à l’utilisateur ├─ SunuerManage.sln # Fichier de solution, contient la structure et la config du projet



Fichier de configuration launchSettings.json



{ "$schema": "http://json.schemastore.org/launchsettings.json", "iisSettings": { "windowsAuthentication": false, "anonymousAuthentication": true, "iisExpress": { "applicationUrl": "http://localhost:32430", //http://localhost:32430,Indique que l’application sera accessible via cette adresse. "sslPort": 0 } }, "profiles": { "http": { "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, "applicationUrl": "http://localhost:5021", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" //Development : Environnement de développement. Staging : Environnement de préproduction. Production : Environnement de production. } }, "IIS Express": { "commandName": "IISExpress", "launchBrowser": true, "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } } } }


Fichier de configuration appsettings.json

"ConnectionStrings": {
  "DefaultConnection": "Server=nhdSQLEXPRESS;Database=SunuerManage;User Id=sa;Password=123456;MultipleActiveResultSets=true;TrustServerCertificate=True;Max Pool Size=100;Min Pool Size=5;Pooling=true;"
},

Server=nhd/SQLEXPRESS : Spécifie le serveur et le nom de l’instance de base de données à utiliser.

Database=SunuerManage : Spécifie la base de données par défaut à laquelle se connecter.

User Id=sa; Password=123456 : Identifiants (nom d’utilisateur et mot de passe) nécessaires pour se connecter à SQL Server.

MultipleActiveResultSets=true : Autorise la réalisation simultanée de plusieurs opérations de lecture de données dans une même session/connexion de base de données. Par exemple, pendant qu’une requête lit des données, une autre requête peut s’exécuter en parallèle. C’est particulièrement utile avec Entity Framework, où ce paramètre doit être activé pour permettre des lectures en parallèle et d’autres opérations dans la même connexion.

TrustServerCertificate=True : Lors de l’utilisation d’une connexion TLS/SSL avec SQL Server, détermine s’il faut faire confiance au certificat fourni par le serveur. Avec True, la connexion chiffrée est établie même si le certificat n’est pas émis par une autorité de certification de confiance ou s’il présente d’autres problèmes de validation. Note de sécurité : Dans un environnement de production, si vous utilisez un certificat auto-signé ou non reconnu, cette option autorise la connexion mais comporte un certain risque de sécurité. Configurez soigneusement selon vos besoins.

Max Pool Size=100; Min Pool Size=5; Pooling=true : Contrôle le comportement du pool de connexions.

Pooling=true : Active le pool de connexions, améliorant les performances en cas d’accès fréquent à la base de données et réduisant les coûts liés aux ouvertures/fermetures de connexions.

Max Pool Size=100 : Nombre maximum de connexions inactives conservées dans le pool. Si ce nombre est dépassé, les nouvelles demandes de connexion doivent attendre qu’une connexion se libère ou lancer une exception, selon la configuration.

Min Pool Size=5 : Nombre minimum de connexions inactives conservées dans le pool. Lors de la première connexion à la base de données, 5 connexions sont préinitialisées afin de répondre rapidement aux requêtes suivantes.