مدونة IDev مدونة IDev
random

آخر المواضيع

random
جاري التحميل ...

la sécurité en asp.net - حماية موقعك


يتيح 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
    Labels        TextBox (s)           Validators           Propriétés

 

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();
    }

           . . . . . .   

}
شكر الخاص للأستاذ الذي يوفر هذا الشرح


التعليقات



إذا أعجبك محتوى مدونتنا نتمنى البقاء على تواصل دائم ، فقط قم بإدخال بريدك الإلكتروني للإشتراك في بريد المدونة السريع ليصلك جديد المدونة أولاً بأول ،

إتصل بنا

جميع الحقوق محفوظة

مدونة IDev