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 :

MVC - authentification sur formulaire classique


Sujet :

ASP.NET MVC

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 44
    Points : 37
    Points
    37
    Par défaut MVC - authentification sur formulaire classique
    Salut à tous,

    voila je suis entrain de coder une appli en mvc destiné pour une école.
    La première page présente le site et son contenu et en dessous un formulaire où le visiteur peux se logguer (bdd déjà existante mais pas implémentée).

    De plus, j'ai activé les rôles dans les paramètres du projet pour que mon client puisse avoir accès à certaines pages que je coderai. Enfin j'aimerai pouvoir me connecter via le formulaire via une base sql où y aurait mes identifiants et mot de passe de mes utilisateurs et je ne sais pas trop comment faire.

    Merci d'avance

  2. #2
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    Dans le template MVC2 de Visual Studio il y'a deja une authentification par formulaire, tu peux t'en inspirer

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 44
    Points : 37
    Points
    37
    Par défaut
    Oui j'ai vu mais je ne vois pas où il stocke les différents utilisateurs.

    Merci

  4. #4
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    Citation Envoyé par Raph87 Voir le message
    Oui j'ai vu mais je ne vois pas où il stocke les différents utilisateurs.

    Merci
    Les utilisateurs sont stockés en base de données. Par défaut les applis utilisent la même base mais il faut que tu la crées à l'aide de l'utilitaire suivant :
    http://msdn.microsoft.com/fr-fr/library/ms229862.aspx
    Regarde pour le MembershipProvider et RoleProvider

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 44
    Points : 37
    Points
    37
    Par défaut
    Ça j'ai fait avec le petit assistant qui me demande quel connexion choisir
    donc dans ma base de données j'ai des tables style :

    aspnet_Users;
    aspnet_Users_InRoles;

    Comment je peux faire à partir d'un formulaire, que j'ai fait, sur ma vue m'authentifier sans devoir utiliser les models et controller implémentés par defaut dans chaque projet. Interroger la db pour voir si le membres existe et voir si le mot de passe existe. Comme en PHP avec les sessions ?

    D'avance, merci

  6. #6
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    Citation Envoyé par Raph87 Voir le message
    Ça j'ai fait avec le petit assistant qui me demande quel connexion choisir
    donc dans ma base de données j'ai des tables style :

    aspnet_Users;
    aspnet_Users_InRoles;

    Comment je peux faire à partir d'un formulaire, que j'ai fait, sur ma vue m'authentifier sans devoir utiliser les models et controller implémentés par defaut dans chaque projet. Interroger la db pour voir si le membres existe et voir si le mot de passe existe. Comme en PHP avec les sessions ?

    D'avance, merci
    Comme je t'ai dit plus haut, il faut t'inspirer de ce qui est fait dans les controllers deja existant!
    Tu verrais que t'as un tas de fonctions utiles comme celle ci :
    http://msdn.microsoft.com/en-us/libr...idateuser.aspx

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 44
    Points : 37
    Points
    37
    Par défaut
    Je dois donc implémenter une classe MembershipProvider ?

  8. #8
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    Citation Envoyé par Raph87 Voir le message
    Je dois donc implémenter une classe MembershipProvider ?
    Utiliser la SqlMembershipProvider par défaut me semble suffisant

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 44
    Points : 37
    Points
    37
    Par défaut
    Tu n' a pas un tuto sous la main pour mettre en place sqlMembershipProvider ?

    Car je touche rien et ca m'énerve, Quand j'utilise les users via asp.net configuration, je ne sais même pas ou mes utilisateurs sont stockés et je ne vois pas comment adapter mon formulaire que j'ai fait pour les redirections.

    J'ai ça dans mon webConfig

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        <membership>
          <providers>
            <clear/>
            <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices"
                 enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
                 maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
                 applicationName="/" />
          </providers>
        </membership>
    donc je pense que c'est la bonne méthode mais j'aimerais bien interagir moi même avec mes table car j'ai l'impression que j'ai le contrôle sur rien.
    Merci.

    Je peux revenir à une version où je n'avais pas activer les users si il faut

  10. #10
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    Tu peux remarquer la partie suivante dans ton extrait de code: connectionStringName="ApplicationServices"
    Ce qui signifie que plus haut tu dois avoir quelque chose comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      <connectionStrings>
        <add name="ApplicationServices"
             connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
             providerName="System.Data.SqlClient" />
      </connectionStrings>
    C'est cette partie qui précise sur quelle base de données tu travailles. Dans mon exemple je travaille sur la base de données fichier aspnetdb.mdf via SQL Server Express.
    Si tu as déjà ta propre base de donnée qui contient les tables aspnet alors il te suffit de modifier ce connection string pour utiliser ta propre base
    Ce site peut t'aider: http://www.connectionstrings.com/sql-server-2008

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 44
    Points : 37
    Points
    37
    Par défaut
    Ok je regarderai ce qu'il en est dans mon web config.
    Merci

  12. #12
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 145
    Points : 77
    Points
    77
    Par défaut
    Check cet article:

    http://www.code-magazine.com/article...0703071&page=1

    Si tu veux garder le système membership déjà existant et gérer des données supplémentaires sur des utilisateurs, il est assez utile. Par contre, il est pas très très clair et il faut adapter pour MVC...
    bon courage

  13. #13
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 44
    Points : 37
    Points
    37
    Par défaut
    Oui c'est bien la base aspnetdb.mdf qu'il utilise.
    Après je ne sais pas quel table modifier et mettre mes users selon lea structure que je voudrais.

  14. #14
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 44
    Points : 37
    Points
    37
    Par défaut
    Bon j'ai repris une configuration de base avec tous les controller et models par défaut et je vais donc l'adapter car ça devient trop casse-tête.

    J'aimerais maintenant mettre le formulaire de la page logOn.aspx dans la page Index.apsx du dossier Home.J'ai donc copier les élément du formulaire
    mais dans la balise page de Logon il y a ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<CroquTartine_app.Models.LogOnModel>" %>
    et dans le page index ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>
    et je sais pas comment faire pour dire que le formulaire de connection se fera dans Home/Index.aspx.

    Merci

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

Discussions similaires

  1. problème sur formulaire sans mvc
    Par cedrick21 dans le forum Zend_Form
    Réponses: 2
    Dernier message: 19/12/2012, 09h53
  2. ext4 mvc : soumettre un formulaire à l'appuie sur entrée
    Par kimjoa dans le forum Ext JS / Sencha
    Réponses: 3
    Dernier message: 16/09/2011, 22h22
  3. demande d'authentification sur formulaire ie bloquant
    Par batou22003 dans le forum VB.NET
    Réponses: 1
    Dernier message: 18/02/2011, 22h06
  4. Aide sur formulaire d'authentification
    Par jeffrey_06 dans le forum Langage
    Réponses: 3
    Dernier message: 04/04/2006, 11h26

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