IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

[ASP.NET MVC] configuration de l'authentification dans web.config


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 397
    Par défaut [ASP.NET MVC] configuration de l'authentification dans web.config
    Bonjour,

    Pour faire suite à mon poste ici, j'ai choisi de gérer moi-même la sécurité de mon application web plutôt que de me reposer sur l'implémentation proposé par Microsoft et le framework qui utilise la base de donnée ASPNETDB.MDF, et dont je n'arrive pas à me connecter à ma base de donnée pour éxecuter les scripts de créations des tables utilisés par ASPNETDB.MDF.

    Du coup, je veux gérer la sécurité de mon application de la façon suivante:
    • Une table Users
    • Une table Roles
    • Une table Groups


    Le seul soucis est que je ne sais pas comment dire à mon application d'aller regarder dans ma base de donnée au lieu de la base ASPNETDB.MDF qui est la base par défaut utilisé par le framework pour géré les utilisateurs. Je suppose qu'il s'agit dans le web.config, mais je n'ai aucune idée des modifications à apporter au fichier pour lui dire de prendre ma base, plutôt qu'une autre.

    Si quelqu'un pouvait m'aider, j'en serais grandement reconnaissant (je me suis batus avec SQL Server, mais j'ai été mis KO =(

    Merci encore et bonne après-midi,

    L.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 80
    Par défaut
    Je ne sais pas si c'est la meilleure solution amis voici ce que moi j'utilise.

    Au niveau du web.config passe en mode authentification windows
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      <authentication mode="Windows">
        </authentication>
    J'ai également une chaine de connexion vers ma base qui gère les utilisateurs.


    Ensuite j'utilise l'AuthenticateRequest du Global.asax

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    protected void Application_AuthenticateRequest(Object sender, EventArgs e)
    {
    if (System.Web.HttpContext.Current.Request.IsAuthenticated)
     {
    System.Security.Principal.WindowsIdentity identity = (System.Security.Principal.WindowsIdentity)this.Context.User.Identity;
     
    this.Context.Cache.Remove(this.Context.User.Identity.Name);
    // Test l'existence d'un user en cache
    if (this.Context.Cache[identity.Name] == null)
    {
     // récupération des informations de sécurité en base (Profil)
    CustomPrincipal principal =  AuthentificationManager.CreateCustomPrincipal(identity);
     
    //   et  Mise en cache des informations de sécurité
    Context.Cache.Add(identity.Name, principal, null, DateTime.MaxValue, new TimeSpan(0, 20, 0), CacheItemPriority.Normal, null);
    }
      }
    }
    J'ai un objet users avec les propriétés (nom, prénom, is admin) et une procédure qui utilise la récupération des infos utilisateurs via un dataset.

    J'imagine que tu dois ainsi pouvoir récupérer les groupes et roles de l'utilisateur en question


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    public class CustomPrincipal : WindowsPrincipal
        {
     
            private Users _user = null;
     
     
            public CustomPrincipal(WindowsIdentity identity)
                : base(identity)
            {
                //
                //  j'utilise le login pour récup les infos via le usersmanagers. 
                // celui ci appelle une classe DAO qui remplit un dataset et instancie usr 
                string login = identity.Name.Split('\\')[1];
                 Users usr = EntitiesProvider.UsersManager.GetUserByLogin(login);
                if (usr.Login != null)
                {
                    _user = usr;
                }
     
            }
     
     
     
            public bool IsAdmin
            {
               //j'ai une propriété isAdmin, mais les rôles / profils de l'utilisateurs doivent pouvoir être récupérés de façon identique. 
                get { return _user.IsAdmin; }
            }
     
    etc

    pense à bien configurer iis aussi.


    j'espère que ça aidera

  3. #3
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 397
    Par défaut
    Merci bien pour ta réponse

    Par contre, je ne peux utiliser le mode Windows, pour moi c'est webforms obligatoirement puisque c'est une application accessible depuis Internet uniquement :/

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 80
    Par défaut
    Désolé, jamais fait d'authentification webform, je ne sais pas si cela fonctionne de façon identique.

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 31
    Par défaut
    Un petit indice, dans le fichier web.config

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <authentication mode="Forms"/>

  6. #6
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 397
    Par défaut
    Merci, j'avais déjà effectué la modification ^^

    Ce que je cherche à faire, c'est de dire au framework d'aller utiliser mes tables à moi, plutôt que celle dans la base de donnée ASPNETDB.MDF ; )

Discussions similaires

  1. Réponses: 4
    Dernier message: 07/06/2015, 01h28
  2. Réponses: 3
    Dernier message: 15/12/2014, 17h39
  3. ASP.NET MVC 4 beta disponible : introduction de Web API
    Par Hinault Romaric dans le forum ASP.NET MVC
    Réponses: 7
    Dernier message: 28/09/2013, 16h50
  4. Réponses: 13
    Dernier message: 03/03/2010, 23h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo