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 :

Membership.GetUser() renvoie null


Sujet :

ASP.NET MVC

  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Corée

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 39
    Par défaut Membership.GetUser() renvoie null
    Bonjour à tous,

    J'ai petit soucis avec Membership.GetUser(). Dans un controller, j'aimerai récupérer l'id d'un membre (Membership et provider proposés par ASP.NET à la création du projet). Pour cela, j'ai lu qu'il y avait Membership.GetUser(string UserName), mais il renvoit toujours null dans mon cas et je ne vois absolument pas d'où pourrait venir ce problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
                    var userName = User.Identity.Name; // userName = "plop" ("plop" est un nom de membre valide)
                    MembershipUser user = Membership.GetUser(userName); // user = null
    Quelqu'un a t-il une solution a ce problème ?

    Merci beaucoup.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Quand effectues-tu cet appel Membership.GetUser(string UserName) ? Je trouve bizarre que cela renvoie null Sinon il y a d'autre méthodes comme FindUsersByName et FindUsersByEmail. As-tu testé ces méthodes pour voir ce que ça donne ?

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Corée

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 39
    Par défaut
    J'effectue cet appel dans un controller de validation de formulaire. Mais même dans l'index du controller, ça fait la même chose.

    Et j'ai essayé :
    Membership.GetAllUser() -> renvoie null
    Membership.FindUsersByName() -> renvoie null

    J'ai l'impression que mon Membership est un peu cassé...

    Merci pour ta réponse.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Utilises-tu vraiment l'authentification par formulaire ?
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <authentication mode="Forms">
    <!-- bla bla -->
    </authentication>

    Si oui, alors peut-on voir comment tu as configuré le provider dans ton fichier web.config ?

  5. #5
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Corée

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 39
    Par défaut
    le mode "forms" ne change rien dans le comportement de l'application c'est juste pour le spécifier ? Et dans le cas de forms rajouter une redirection en cas de non authentification ?

    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
    32
    33
    34
     
      <system.web>
        <authentication mode="Forms">
          <forms loginUrl="/Account/Login" />
        </authentication>
        <compilation debug="true" targetFramework="4.5" />
        <httpRuntime targetFramework="4.5" />
        <profile defaultProvider="DefaultProfileProvider">
          <providers>
            <add name="DefaultProfileProvider" type="System.Web.Providers.DefaultProfileProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/" />
          </providers>
        </profile>
        <membership defaultProvider="DefaultMembershipProvider">
          <providers>
            <add name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
          </providers>
        </membership>
        <roleManager defaultProvider="DefaultRoleProvider">
          <providers>
            <add name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/" />
          </providers>
        </roleManager>
        <!--
                If you are deploying to a cloud environment that has multiple web server instances,
                you should change session state mode from "InProc" to "Custom". In addition,
                change the connection string named "DefaultConnection" to connect to an instance
                of SQL Server (including SQL Azure and SQL  Compact) instead of to SQL Server Express.
          -->
        <sessionState mode="InProc" customProvider="DefaultSessionProvider">
          <providers>
            <add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" />
          </providers>
        </sessionState>
      </system.web>
    C'est le package qui à configurer comme ça

    EDIT :
    Du coup j'ai rajouter redirection en cas de non authentification

  6. #6
    Invité
    Invité(e)
    Par défaut
    Je te conseille de suivre ce tutoriel pour bien appréhender l’authentification sous ASP.net MVC

  7. #7
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Corée

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 39
    Par défaut
    Merci pour le lien, mais je vais pas pouvoir suivre ce tutoriel. Car j'utilise ASP.NET MVC 5 avec bootstrap 3 et il n'y a plus d'accès à l' "Administration de Site Web".

    Je vais quand même essayer de voir s'il y a pas un petit indice pour résoudre mon problème.

  8. #8
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Corée

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 39
    Par défaut
    Alors j'ai recréé un projet pour faire des tests et essayé de comprendre ce qu'il se passe avec le Membership.

    Donc après création, j'ai installé le package "Microsoft.AspNet.Providers.LocalDb" pour configurer les providers (avoir les Roles, ...). J'ai ensuite lancé le site pour créer un user via le formulaire /Account/Register. Cette opération à créé une série de tables nommées : AspNetRoles, AspNetUsers, AspNetUserRoles, AspNetUserClaims, AspNetUserLogins. En ouvrant les données je vois bien le user que j'ai créé.

    Attention, le problème vient en faisant un appel aux System.Web.Security.Membership car après l'appel, je peux voir une nouvelle série de tables (en plus de l'autre) nommée : Applications, Memberships, Profiles, Users, Roles, UsersInRoles.

    Alors je dois avoué que je ne comprends pas pourquoi le Membership ne prend pas les tables utilisées par l'AccountController.


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

Discussions similaires

  1. Request.getParameter renvoie NULL
    Par the java lover dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 22/10/2006, 10h34
  2. [ppc] Malloc renvoie NULL !
    Par FamiDoo dans le forum C++
    Réponses: 4
    Dernier message: 18/08/2006, 10h01
  3. Operateur "new" renvoi NULL
    Par Demerzel_01 dans le forum C++
    Réponses: 25
    Dernier message: 07/07/2006, 09h43
  4. [SPL] Rewind() qui renvoie NULL
    Par fadeninev dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 06/06/2006, 15h44
  5. [JDBC]Un new qui renvoie null...
    Par Ditch dans le forum JDBC
    Réponses: 4
    Dernier message: 03/01/2005, 13h14

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