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] Comment restreindre l'invocation des Controlleurs et l'accès aux pages?


Sujet :

ASP.NET

  1. #1
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 397
    Points : 130
    Points
    130
    Par défaut [ASP.NET MVC] Comment restreindre l'invocation des Controlleurs et l'accès aux pages?
    Hello,

    Je dois mettre en place l'authentification sur mon site. Pour cela, je dispose d'une table "utilisateurs" dans laquel j'insère un utilisateur lorsque celui-ci remplis le formulaire de création.

    J'ai cherché un peu sur internet, mais je n'ai pas trouvé d'explication potable pour l'utilisation des filtres d'authorisation.

    Est-ce que quelqu'un pourrait m'expliquer le principe de fonctionnement? Comment est-ce qu'on lie les authorisations, que se soit à un utilisateur ou à un rôle, à notre application? De plus, comment savoir quand un utilisateurs est de type, utilisateur simple, admin, super-user, ou autre ?

    Ca fait beaucoup de questions, mais même sur le bouquin ASP.NET MVC for professionnals je n'ai pas trouvé d'explication parlante : /

    Merci bien pour votre aide et bonne journée,

    L.

  2. #2
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 397
    Points : 130
    Points
    130
    Par défaut
    Personne n'a des ressources ou explications là dessus?

  3. #3
    Membre expérimenté Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Points : 1 352
    Points
    1 352
    Par défaut
    L'autorisation MVC.net est la même que l'asp.net si je ne m'abuse. Tu trouvera surement plus de littérature sur ce sujet là.

  4. #4
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 397
    Points : 130
    Points
    130
    Par défaut
    Je n'ai aucune expérience dans la gestion des accès avec asp.net (que se soit avec MVC ou en simple webforms). Est-ce que tu aurais quelques liens/references/tuto à me proposer par ou commencer?

    Si tu as également des conseils et explications sur comment ça marche avec MVC, je suis preneur de toutes informations : )

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Points : 1 120
    Points
    1 120
    Par défaut
    Salut,

    je pense que ce lien t'aidera http://dotnet.developpez.com/mvc/mvc...ication-forms/

  6. #6
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Salut,

    C'est interessant, mais je vois pas trop comment on peut exploiter un contrôle d'accès sur des noms d'utilisateurs dans un milieu de production. L'utilisation d'attributs ne me parait pas non plus très souple.

    Malgré tout l'usage des rôles me parait le plus approprié.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  7. #7
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 397
    Points : 130
    Points
    130
    Par défaut
    Citation Envoyé par Immobilis Voir le message
    Salut,

    C'est interessant, mais je vois pas trop comment on peut exploiter un contrôle d'accès sur des noms d'utilisateurs dans un milieu de production. L'utilisation d'attributs ne me parait pas non plus très souple.

    Malgré tout l'usage des rôles me parait le plus approprié.

    A+
    Je ne suis pas sur d'avoir tout compris O_o

  8. #8
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    Citation Envoyé par Immobilis Voir le message
    C'est interessant, mais je vois pas trop comment on peut exploiter un contrôle d'accès sur des noms d'utilisateurs dans un milieu de production.
    ......
    Malgré tout l'usage des rôles me parait le plus approprié.
    C'est sur que sur une "vraie" application, on va passer seulement par les roles, lister les utilisateurs autorisés, c'est un peu chercher les baffes

    L'utilisation d'attributs ne me parait pas non plus très souple.
    A l'usage, ca marche plutot bien pour des "petits" sites, c'est sur que ca manque de souplesse post-déploiement.

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  9. #9
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 397
    Points : 130
    Points
    130
    Par défaut
    Euh, je suis pas sur de vous suivre.

    Je n'ai pas d'expérience d'implémentation avec asp.net pour ce qui concerne l'implémentation, mais pour moi c'est la vérification qu'un utilisateur appartient bien à un rôle avant de lui afficher la page ou non.

    Est-ce bien de ça dont vous parlez?

    Sinon si vous avez des liens sur comment implémenter l'authentification je suis preneur J'ai consulté le lien sur la sécurité dans mvc plus haut, mais j'ai eu quelques soucis avec la partie concernant la BDD : /

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Points : 1 120
    Points
    1 120
    Par défaut
    L'authentification ASPNET repose sur la notion de providers. Deux sont disponible nativement : Windows et Forms. Cela signifie que si tu veux connecter ton applis à un intranet, tu va utiliser Windows. Si tu veux une authentification par formulaires, c'est à dire dans lequel les utilisateurs peuvent créer leurs comptes via une formulaire, il faut utiliser cette méthode. Pour cela, Microsoft a mis à dispo, un script sql de création des tables utilisées par ce provider. Une fois la structure créée, et ton appli configurée (web.config), tout fonctionnera de manière autonome.

    Dans le cadre de l'approche MVC, il est possible vu le lien de faire correspondre les droits avec les controllers comme sur le lien.

    Ensuite, il est toujours possible et faire son propre provider pour l'authentification, si par exemple, tu veux stocker les users dans des fichiers xml...

  11. #11
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 397
    Points : 130
    Points
    130
    Par défaut
    En fait, j'ai une base donnée que j'utilise. Du coup, vu que microsoft fournit les scripts pour importer et créer les tables dans ma base. Ca veut aussi dire qu'ensuite je peux les créers directement en allant sur ces tables?

    Je suppose que c'est également possible d'établir des relations entre ces tables et mes tables à moi, ceci afin de d'avoir les données qui concerne uniquement l'utilisateur sur lequel j'effectue un filtre lorsque j'intéroge ma base de donnée. Par exemple en faisant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select * from myTable where myTable.id = User.id
    Edit: les scripts sont dans le repertoire indiqué dans le tutoriel je suppose ?

  12. #12
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Points : 1 120
    Points
    1 120
    Par défaut
    Dans la section Configurer l'Authentification du tutoriel tu trouvera la procédure. Le seul problème du tutoriel pour toi, c'est qu'il utilise une instance ASPNETDB.mdf via SQL express. Dans ton cas, il faudra adapter le serveur à utiliser avec le tien.

    Pour les jointures, cela marchera bien.

    Dernier hic, la création des utilisateurs par toi même. Le seul moyen (a vérifier) que je connaisse est d'utiliser le provider, et donc de passer via une page ASPNET. En effet, le provider va par exemple crypter ou hasher les mdps (par défaut) ; ce qui rends difficile de faire cela ailleurs. Il est tout de même possible de piloter le provider pour créer une liste de login/mdp.

  13. #13
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    Sinon, tu peux aussi développer un jeu de classe qui implémente IPrincipal, IIdentity et compagnie, et refaire ton système...

    J'ai fait ca récemment, en cherchant à droite à gauche, tu devrais pouvoir trouver les données suffisantes...ou sinon, tu attends deux mois que j'aie le temps d'écrire un article

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  14. #14
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 397
    Points : 130
    Points
    130
    Par défaut
    Citation Envoyé par cybermaxs Voir le message
    Dans la section Configurer l'Authentification du tutoriel tu trouvera la procédure. Le seul problème du tutoriel pour toi, c'est qu'il utilise une instance ASPNETDB.mdf via SQL express. Dans ton cas, il faudra adapter le serveur à utiliser avec le tien.

    Pour les jointures, cela marchera bien.

    Dernier hic, la création des utilisateurs par toi même. Le seul moyen (a vérifier) que je connaisse est d'utiliser le provider, et donc de passer via une page ASPNET. En effet, le provider va par exemple crypter ou hasher les mdps (par défaut) ; ce qui rends difficile de faire cela ailleurs. Il est tout de même possible de piloter le provider pour créer une liste de login/mdp.
    Pour l'instance du serveur, si j'ai bien compris c'est dans le web.config qu'on peut changer ça non?

    Pour créer les utilisateurs, je pense que ca doit être possible de les créers autrement ? Oo Sinon les pages de créations d'utilisateurs automatisée et tout, ca serait problématique si ça ne fonctionnait pas je pense

    Citation Envoyé par Philippe Vialatte Voir le message
    Sinon, tu peux aussi développer un jeu de classe qui implémente IPrincipal, IIdentity et compagnie, et refaire ton système...

    J'ai fait ca récemment, en cherchant à droite à gauche, tu devrais pouvoir trouver les données suffisantes...ou sinon, tu attends deux mois que j'aie le temps d'écrire un article
    Si tu l'écris tout de suite je peux attendre quelques jours ^^ sinon 2 mois c'est trop long : /

  15. #15
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    La question de la sécurité repose sur une fonctionnalité simple: identifiant/mot de passe, authorisé oui/non. C'est l'implémentation qui varie (base de donnée, fichier de config, etc.).
    En .Net on peut (ce n'est pas obligatoire) utiliser les MemberShip quelque soit le moyen de stocker l'information. Cela permet d'utiliser des objets standards du FrameWork. De la lecture ici: http://msdn.microsoft.com/en-us/library/91f66yxt.aspx.

    C'est pour de l'intranet?

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  16. #16
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 397
    Points : 130
    Points
    130
    Par défaut
    Citation Envoyé par Immobilis Voir le message
    La question de la sécurité repose sur une fonctionnalité simple: identifiant/mot de passe, authorisé oui/non. C'est l'implémentation qui varie (base de donnée, fichier de config, etc.).
    En .Net on peut (ce n'est pas obligatoire) utiliser les MemberShip quelque soit le moyen de stocker l'information. Cela permet d'utiliser des objets standards du FrameWork. De la lecture ici: http://msdn.microsoft.com/en-us/library/91f66yxt.aspx.

    C'est pour de l'intranet?

    A+
    Pour de l'internet. Merci bien pour le lien, je vais lire un peu tout ça


    Sinon , j'ai un petit soucis avec SQL Server fournit avec VSExpress/Web Plateform installer.

    Je n'arrive pas à accéder à ma base de donnée de mon projet pour je ne sais quelle raison. J'ai essayé d'installer une nouvelle base aussi, mais impossible d'y arriver : (

    Que faut-il avoir pour que SQL Server fonctionne correctement? : /

    EDIT:
    Je crois que j'ai un problème avec mon serveur SQL. Impossible de me connecter à mon serveur depuis SQL Serveur Management Studio quand je vais chercher le .mdf dans mon projet, il me dit qu'ily a une erreur dans le fichier (alors que dans VS j'y est bien accès) :/

  17. #17
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 397
    Points : 130
    Points
    130
    Par défaut
    Personne n'a eu de problème similaire ? :/

  18. #18
    Membre expérimenté Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Points : 1 352
    Points
    1 352
    Par défaut
    C'Est plus une question pour un forum sql serveur je pense...

  19. #19
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 397
    Points : 130
    Points
    130
    Par défaut
    J'ai posé la question ici : http://www.developpez.net/forums/d88...le-dy-acceder/

    Si quelqu'un connais une autre méthode d'importer les tables nécessaire pour l'utilisations des rôles et autres, je suis preneur ; )

Discussions similaires

  1. Gestion des cookies asp.net MVC 3
    Par Provson dans le forum ASP.NET
    Réponses: 17
    Dernier message: 11/07/2012, 11h41
  2. [ASP.NET MVC] Inherits des Views
    Par Leelith dans le forum ASP.NET
    Réponses: 3
    Dernier message: 06/10/2009, 02h07
  3. [ASP.NET MVC] Création des règles de validation
    Par Leelith dans le forum ASP.NET
    Réponses: 8
    Dernier message: 29/09/2009, 18h49

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