Magazine Internet

[ASP] Bonne pratique de l’authentification Forms

Publié le 24 novembre 2008 par Jeremy.jeanson

1) Pour ecriture d'un MembershipProvider ou d'un RoleProvider personnalisé : Il faut grader à l'esprit qu'il s'agit d'un provider, en soit il ne log pas votre utilisateur, il sert juste à répondre aux questions que se posent les controls qui servent à l'authentification. Il faut donc pas chercher à trop en faire avec ceux-si, les méthodes suivantes sont largemnt suffisantes pour permettre l'emploi de vos providers avec ces controles (tant que vous en cherchez pas à modifier vos utilisateurs)

    public class CustomMembershipProvider : MembershipProvider
    {
        #region Obligatoires

        /// 
        /// Rechercher un utilisateur par son login
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        public override MembershipUserCollection FindUsersByName(String userNameToMatch, Int32 pageIndex, Int32 pageSize, out Int32 totalRecords)
        {
            // ...
        }

        /// 
        /// Retourne un utilisateur
        /// 
        /// 
        /// 
        /// 
        public override MembershipUser GetUser(Object providerUserKey, Boolean userIsOnline)
        {
            // ...
        }

        /// 
        /// Retourne un utilisateur
        /// 
        /// 
        /// 
        /// 
        public override MembershipUser GetUser(String username, Boolean userIsOnline)
        {
            // ...
        }

        /// 
        /// Valider un utilisateur avec son login et son mot de passe
        /// 
        /// 
        /// 
        /// 
        public override Boolean ValidateUser(String userName, String passWord)
        {
            // ...
        }

        #endregion

    }

2) Indiquer les providers à utiliser : le code suivant est bien suffisant, donc nul besoin de ces deux ou trois kilomètres de codes comme on peut en voire un peu partout. On parle ici de sécurisé un accès, il ne faut donc pas pécher par excès en cherchant encore ici à trop en faire.

    <membership defaultprovider="CustomMembershipProvider">
      <providers>
        <add name="CustomMembershipProvider" type="Namespace.CustomMembershipProvider" />
      </providers>
    </membership>
    <rolemanager defaultprovider="CustomRoleProvider" enabled="true">
      <providers>
        <add name="CustomRoleProvider" type="Namespace.CustomRoleProvider" />
      </providers>
    </rolemanager>
    <authentication mode="Forms">
      <forms loginurl="~/Login.aspx" />
    </authentication>
    <authorization>
      <deny users="?" />
    </authorization>

3) Autoriser ou interdire des accès: Presque tout le monde connaît les balises <authorization> avec allow et deny, mais trop souvant on croit quelles se limitent à autoriser ou interdire un répertoire. Sachez que l'on peut faire la même chose avec des fichiers.

Par exemple : pour autoriser l'accès aux thèmes si votre page login.aspx se trouve à la racine de votre site mais que vous ne souhaitez pas rendre les autres pages accessible. Sans quoi on se retrouve avec une page de longin vraiment moche... certain diront "sobre".

<location path="App_Themes"> 
  <system.web> 
    <authorization> 
      <allow users="*"/> 
    </authorization> 
  </system.web> 
</location>

4) Surtout ne rien toucher d'autre! : pourquoi puis-je bien vouloir à tout pris dire cela ? ... et bien pour une raison simple, les controls d'authentification (Login, LoginStatus et autres) fonctionnent bien du moment que nos provider sont bien codées. Si vous commencez à avoir besoin de changer un de ces controls, c'est bien souvent du fait que l'un de vos provider ne répond pas correctement aux sollicitations des control et non pas le contraire!

Il n'y a pas de mal à n'avoir que le control suivant dans une page de login et rien en code-behind:

<asp:Login runat="server" ID="Login1">
</asp:Login>

Il n'y a pas de déshonneur à laisser des controls tout faire, du moment qu'ils sont faits pour cela.

Je sais que je me répète comme un grand-père, mais pour une bonne pratique de la gestion d'accès via "Froms" ou autres provider rien ne vaudra jamais le fais d'utiliser ce qui est déjà éprouvé car ce serra toujours plus stable et sécurisé qu'une mamaille personnel dont les jours sont comptés ... car il y aura toujours un petit malin pour trouver la faille dans votre code.


Vous pourriez être intéressé par :

Retour à La Une de Logo Paperblog

Ces articles peuvent vous intéresser :

  • Power BI: 15 erreurs courantes chez les débutants (2 de 3)

    Power erreurs courantes chez débutants

    J’ai été la première à offrir des formations Power BI à Montréal (et longtemps la seule), de sorte que j’ai formé un nombre impressionnant d’usagers. Lire la suite

    Le 17 août 2018 par   Sopmar01
    INFORMATIQUE, LOGICIELS, ORDINATEURS
  • Spéculoos recette maison au thermomix

    Spéculoos recette maison thermomix

    , un délicieux biscuit pour votre gouter. facile à préparer chez vous, voila la recette du biscuit Spéculoos au thermomix. INGRÉDIENTS : 250 g de farine 150 g d... Lire la suite

    Le 17 août 2018 par   Nicole Michelin
    CUISINE, RECETTES
  • Tarte aux prunes avec Thermomix

    Parce que c’est le moment de l’année où on aime se faire plaisir, et en cuisine c’est dessert et cocktail, nous vous présentons la recette de la tarte aux prune... Lire la suite

    Le 17 août 2018 par   Sabine91
    CUISINE, RECETTES
  • Mug Cake Chocolat Coulant au thermomix

    Cake Chocolat Coulant thermomix

    , un délicieux dessert de chocolat pour vous. facile à préparer chez vous, voila la recette de ce mug chocolat au thermomix. INGRÉDIENTS : 65 g farine 40 g caca... Lire la suite

    Le 17 août 2018 par   Nicole Michelin
    CUISINE, RECETTES
  • Khalil, de Yasmina Khadra

    Khalil, Yasmina Khadra

    Les odieux attentats du vendredi 13 novembre 2015 à Paris resteront longtemps dans les mémoires. Le narrateur, Khalil, du dernier roman de Yasmina Khadra,... Lire la suite

    Le 17 août 2018 par   Francisrichard
    SOCIÉTÉ
  • Mug Cake Oreo au thermomix

    Cake Oreo thermomix

    , un délicieux dessert de crème oreo pour vous. facile à préparer chez vous, voila la recette de ce mug oreo au thermomix. INGRÉDIENTS : 4 c.à.s de farine 2... Lire la suite

    Le 17 août 2018 par   Nicole Michelin
    CUISINE, RECETTES
  • Une voix de Dragon Ball et Cowboy Bebop s’est éteinte

    voix Dragon Ball Cowboy Bebop s’est éteinte

    Triste nouvelle pour les fans d’anime… Selon le site japonais Natalie (via DBS France), Unsho Ishizuka, doubleur de Mr. Satan dans Dragon Ball Kai et... Lire la suite

    Le 17 août 2018 par   Linfotoutcourt
    CULTURE

A propos de l’auteur


Jeremy.jeanson 1573 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte