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 MVC Discussion :

Securité en MVC3 [Débutant]


Sujet :

ASP.NET MVC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 58
    Par défaut Securité en MVC3
    Bonjour à vous,

    Je vous explique un peu mon problème, je souhaite mettre en place une sécurité à plusieurs niveau dans mon application.

    J'ai donc un formulaire de login (celui par défaut) ainsi qu'un système de Membership comme suit :

    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
      protected void Application_Start()
            {
                AreaRegistration.RegisterAllAreas();
     
                Service1Client wcf = new Service1Client();
     
               foreach(var trol in wcf.getListEmploye()){
                   MembershipCreateStatus createStatus;
                   Membership.CreateUser(trol.nom, trol.password, trol.email, null, null, true, null, out createStatus);
                   if (createStatus == MembershipCreateStatus.Success)
                   {}
                   else
                   {}
                }
                RegisterGlobalFilters(GlobalFilters.Filters);
                RegisterRoutes(RouteTable.Routes);
            }
    J'ai un équivalent de ce code à chaque création d'employé.

    Pour ce qui est d'autoriser l'application aux membres enregistrés c'est bon.

    Par contre j'ai besoin de bloquer l’accès à certaines actions dans mes contrôleurs selon le statut d'un employé.

    J'avais pensé à créer des rôles mais je n'y arrive pas, j'ai l'impression que ce n'est pas adapté à l'authentification par formulaire.

    Quel est la bonne pratique ?

    Merci à vous de m'éclairer

  2. #2
    Membre confirmé
    Homme Profil pro
    Ingénieur Informatique
    Inscrit en
    Décembre 2005
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur Informatique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 146
    Par défaut
    La bonne pratique avec mvc serait plutôt d'injecter les dépendances via un bootstrapper appeler sur l'application_start.

    Ainsi ce dernier charge les dépendances via de l'ioc.
    Puis lance les étapes de configuration des dll en nécessitant.

    Dans le lot, il y aurait donc une couche adapté fournissant une implémentation du membership, et de la gestion des rôles.

    Et ensuite d'injecter via cette implémentation.

    ALors vous n'aurez plus qu'à utiliser le membership de façon classique pour authorise ou non les accès aux action/controlleurs. Via des attributs sur les classes méthode.

    Avec quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     [CustomerAuthorize(Role.Administrator)]
        public class ArticlesController:BaseController
        {...}
    baseController est une classe abstraite se chargeant de gérer l'aspect authentification via la surcharge de la méthode d'initialisation du controlleur et en lui ayant au préalable injecter l'implémentation que vous avez pour gérer l'authentification.

    Par contre cela demande un peu de développement car beaucoup de "plomberie" à mettre en place surtout si vous commencez à mettre des aspects d'authentification directement sur le Application_Start car la vous allez avoir de gros problème de maintenance au fil des évolutions de l'applicatif.

    Tantis qu'en passant par un peu "de plomberie initiale" vous rendrez les choses beaucoup plus simple à modifier au cours du temps.

    Si j'ai du temps, je vais essayer de mettre en avant la démarche à suivre de bout en bout, car la il faudrait que je vous fournisse plusieurs sites et de plus je ne sais pas si vous êtes familliarisé avec les contenairs ioc.

  3. #3
    Membre émérite Avatar de yonpo
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2010
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 617
    Par défaut
    Salut,

    Utilise l'attribut Authorize au niveau des actions

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    [Authorize]
    public ActionResult Index()
    {
    ...
    }

    Pour plus d'info, regarde : http://www.pluralsight-training.net/...net-mvc3-intro dans Security and ASP.NET MVC 3

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 58
    Par défaut
    Merci à vous deux, la première solution proposée n'est pas encore de mon niveau, en revanche la deuxième fonctionne à merveille

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Securité] Différence entre Impersonation et Authentication?
    Par Laurent Dardenne dans le forum Windows
    Réponses: 6
    Dernier message: 13/08/2009, 11h32
  2. [JSP][Servlet][Securité] Configuration du login
    Par jaoued dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 15/07/2004, 14h30
  3. pbme de securité !
    Par NaDiA_SoFt dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 03/07/2004, 16h06
  4. Securité mysql phpmyadmin ???
    Par xophe2 dans le forum Apache
    Réponses: 6
    Dernier message: 24/06/2004, 11h34
  5. Securite
    Par K-ZimiR dans le forum Modules
    Réponses: 2
    Dernier message: 26/05/2004, 16h43

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