يتيح ASP.NET Core للمطورين تكوين وإدارة أمان تطبيقاتهم بسهولة. يحتوي ASP.NET Core على وظائف لإدارة المصادقة والتفويض وحماية البيانات وتطبيق HTTPS وأسرار التطبيق والحماية ضد تزييف الطلبات وإدارة CORS. تتيح لك ميزات الأمان هذه إنشاء تطبيقات ASP.NET Core قوية وآمنة.
1) تنظيم الصفحات في المجلدات حسب الأدوار:
Pages Web
|
Rôles
|
||
MAJ des Rôles
|
Admin
|
||
MAJ des Utilisateurs
|
|||
MAJ des Produits
|
|||
lister produits périmés
|
Super
|
||
Produits en rupture de stock
|
|||
Passer une commande
|
User |
||
Inscription
|
|||
Lister les produits
|
مخطط BD: بيع
VenteDataContext :
1) صفحة التسجيل: Inscription.aspx

![]() |
![]() |
![]() |
Login :
|
TxtLogin
|
RequiredFieldValidator1
|
ControlToValidate
|
Mot de passe :
|
TxtPassWord
|
RequiredFieldValidator2
|
ControlToValidate
|
Confirmation :
|
TxtConfirm
|
RequiredFieldValidator3
|
ControlToValidate
|
Nom :
|
TxtNom
|
RequiredFieldValidator4
|
ControlToValidate
|
Prénom :
|
TxtPrénom
|
RequiredFieldValidator5
|
ControlToValidate
|
Adresse Email :
|
TxtEmail
|
RequiredFieldValidator6
|
ControlToValidate
|
RegularExpressionValidator1
|
ControlToValidate
|
||
ValidationExpression
|
CompareValidator2 : ControlToCompare :
TxtPassWord
ControlToValidate : TxtConfirm
ErrorMessage : Le mot de passe et sa confirmation
doivent être identiques
2 Link Buttons : Enregistrer et Annuler
public partial
class Inscription : System.Web.UI.Page
{
VenteDataContext
dc = new VenteDataContext();
protected void LinkEnregistrer_Click(object sender, EventArgs
e)
{
Utilisateur
Util = new Utilisateur();
Util.Login = TxtLogin.Text;
Util.MotDePass =
TxtPassWord.Text;
Util.Nom = TxtNom.Text;
Util.Prenom = TxtPrenom.Text;
Util.Email = TxtEmail.Text;
Util.Role = "User1";
dc.Utilisateur.InsertOnSubmit(Util);
dc.SubmitChanges();
GridView1.DataSourceID = "dsUtilisateurs";
}
protected void LinkAnnuler_Click(object sender, EventArgs
e)
{
Response.Redirect("Default.aspx");
}
}
1) صفحة الاتصال: Connexion.aspx
في صفحة Connection.aspx نستخدم عنصر تحكم: تسجيل الدخول(Login).
FailureText
: Votre tentative de connexion a échoué. Réessayez.
في الصفحة الرئيسية ، يجب عليك استخدام LoginStatus و LoginView:
LoginStatus : LoginText : Connexion
LogoutText :
Deconnexion
LoginView : AnonymousTemplate : Bienvenue
RoleGroup[0]
– Admin : Bienvenue Administrateur +
LoginName
RoleGroup[1] – Super : Bienvenue Super + LoginName
RoleGroup[2] – User : Bienvenue User + LoginName
2) تنظيم الصفحات في المجلدات حسب الأدوار:
Rôles
|
Dossiers
|
Admin
|
Admin
|
Super
|
Super
|
User
|
User
|
في كل مجلد نقوم بإنشاء Web.config.
Web.Config
(Dossier Admin) (Role “Admin”) :
<configuration>
<system.web>
<authorization>
<allow roles="Admin"/>
<deny users="*"/>
</authorization>
</system.web>
</configuration>
Web.Config (Dossier Super) (Role
“Super”):
<configuration>
<system.web>
<authorization>
<allow roles="Super,Admin"/>
<deny users="*"/>
</authorization>
</system.web>
</configuration>
Web.Config (Dossier User) (Role
“User”):
<configuration>
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</configuration>
Web.Config
<system.web>
<siteMap>
<providers>
<remove name="AspNetXmlSiteMapProvider"/>
<add name="AspNetXmlSiteMapProvider" type="System.Web.XmlSiteMapProvider" securityTrimmingEnabled="true" siteMapFile="Web.sitemap"/>
</providers>
</siteMap>
<authentication mode="Forms">
<forms loginUrl="Connexion.aspx" name=".ASPXFORMSAUTH"/>
</authentication>
<authorization>
<allow users="*"/>
</authorization>
<membership defaultProvider="gestionUtilisateurs">
<providers>
<clear />
<add name="gestionUtilisateurs" type="gestionUtilisateurs"/>
</providers>
</membership>
<roleManager defaultProvider="gestionRoles"
enabled="true">
<providers>
<clear />
<add name="gestionRoles" type="gestionRoles" />
</providers>
</roleManager>
إذا كانت هناك مشكلة في linQ ، فأضف العلامة التالية داخل علامة التصنيف:
<assemblies>
<add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089"/>
</assemblies>
أو مع EF تقوم بإضافة العلامة التالية داخل balise compilation:
<assemblies>
<add assembly="System.Data.Entity.Design,
Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
</assemblies>
في مجلد App_Code ، يجب علينا إنشاء الفئتين (deux classes):
· Class gestionUtilisateurs : لإدارة المستخدم
· Class gestionRoles :لإدارة الأدوار
App_Code
using System.Web.Security;
public class
gestionUtilisateurs : MembershipProvider
{
public gestionUtilisateurs()
{
//
// TODO:
ajoutez ici la logique du constructeur
//
}
public
override string
ApplicationName
{
get
{
throw
new NotImplementedException();
}
set
{
throw
new NotImplementedException();
}
}
. . . . . .
public
override bool ValidateUser(string
username, string password)
{
VenteDataContext
dc = new VenteDataContext();
var
requete = from u in
dc.Utilisateur
where u.Login == username && u.MotDePass == password
select u;
return
(requete.Count() == 1);
}
}
using System.Web.Security;
public class
gestionRoles : RoleProvider
{
public gestionRoles()
{
//
// TODO:
ajoutez ici la logique du constructeur
//
}
. . . . . .
// Cette fonction renvoie la liste des rôles d'un
utilisateur donné sous forme // d'un
tableau de chaines de caractères.
public override string[]
GetRolesForUser(string username)
{
VenteDataContext dc = new VenteDataContext();
var
requete = from u in
dc.Utilisateur
where u.Login == username
select u.Role;
return
requete.ToArray();
}
. . . . . .
}
شكر الخاص للأستاذ الذي يوفر هذا الشرح
0 Commentaires