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

Windows Communication Foundation .NET Discussion :

WCF, authentification avec Membership


Sujet :

Windows Communication Foundation .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    Homme Profil pro
    kiné passionné de dev
    Inscrit en
    Mars 2006
    Messages
    1 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : kiné passionné de dev

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 570
    Billets dans le blog
    1
    Par défaut WCF, authentification avec Membership
    Bonjour,

    pour vous mettre dans le bain: je galère.

    Voilà ce que je veux faire:
    un service WCF, qui refuse l'accès à certaines fontions de mon service, si l'utilisateur n'est pas identifié, j'utilise une authentification membership, mais je voudrais que celle-ci ne soit pas obligatoire, si je n'en ai pas besoin

    J'utilise un client winforms pour me connecter.

    Voilà les configurations de mon service:
    Code xml : 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
    35
    36
    37
    38
    39
    40
    <system.serviceModel>
       <bindings>
         <wsHttpBinding>
           <!-- Set up a binding that uses UserName as the client credential type -->
           <binding name="MembershipBinding">
             <security mode ="Message">
               <message clientCredentialType ="UserName"/>
             </security>
           </binding>
         </wsHttpBinding>
       </bindings>
     
     
     
      <behaviors>
       <serviceBehaviors>
        <behavior name="GestionDocBehavior">
          <serviceCredentials>
            <serviceCertificate findValue="MyServerCert" x509FindType="FindBySubjectName" storeLocation="LocalMachine" storeName="My" />
              <userNameAuthentication userNamePasswordValidationMode ="MembershipProvider" membershipProviderName ="FrancisetJFMembershipProvider"/>
          </serviceCredentials>
          <serviceAuthorization principalPermissionMode ="UseAspNetRoles" roleProviderName ="FrancisetJFRoleProvider" /> 
         <serviceMetadata httpGetEnabled="true" />
         <serviceDebug includeExceptionDetailInFaults="True" />
        </behavior>
       </serviceBehaviors>
      </behaviors>
     
      <services>
        <service behaviorConfiguration="GestionDocBehavior" name="GestionDoc">
          <endpoint address="" binding="wsHttpBinding" bindingConfiguration="MembershipBinding" contract="IGestionDoc">
         <identity>
          <dns value="localhost" />
         </identity>
        </endpoint>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
       </service>
      </services>
     
     </system.serviceModel>

    Pour me connecter, j'utilise:
    Code VB.net : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            service.ClientCredentials.UserName.UserName = "NomUser"
            service.ClientCredentials.UserName.Password = "Password"
            service.Open()
            'traitement
     
            service.Close()

    Et voilà mon erreur:
    Échec de la négociation de sécurité SOAP avec « http://localhost:1182/FrancisetJF/home/GestionDoc.svc » pour la cible « http://localhost:1182/FrancisetJF/home/GestionDoc.svc ». Pour plus d’informations, voir l’exception interne.
    Les détails:
    {"Échec de la constitution de la chaîne CN=MyServerCert du certificat X.509. Le certificat qui a été utilisé est doté d’une chaîne d’approbation impossible à vérifier. Remplacez ce certificat ou modifiez l’élément certificateValidationMode. Une chaîne de certificat a été traitée mais s'est terminée par un certificat racine qui n'est pas approuvé par le fournisseur d'approbation. "}
    Pour créer mon certificat, j'ai fait :
    makecert.exe -sr LocalMachine -ss My -a sha1 -n CN=MyServerCert -sky exchange –pe

  2. #2
    Membre éprouvé

    Homme Profil pro
    kiné passionné de dev
    Inscrit en
    Mars 2006
    Messages
    1 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : kiné passionné de dev

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 570
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    à tous ceux qui ont regardé ce post sans avoir d'idée, j'ai une réponse:

    Résolu

    C'était un problème de certificat, car ce dernier n'était pas reconnu comme valide, aucune autorité ne le reconnaissait.

    Il faut donc faire ceci: http://msdn.microsoft.com/en-us/library/ms733813.aspx

    Nouveau problème:
    Donc, à présent, j'ai un autre problème :
    Lors de web.open avec web = ma référence de service côté client

    j'ai:
    La négociation de sécurité a échoué car la partie distante n’a pas renvoyé une réponse dans le délai imparti. La raison peut en être que la connexion de transport sous-jacente a été interrompue.
    En espérant que vous pourrez m'aider

    PS: pour ceux qui ne le savent pas, quand j'ai un problème un peu incompris, je met à jour la référence web côté client qui se trouve dans la même solution et de suite, on a une erreur plus précise.

  3. #3
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    C'est incompréhensible. Tu pourrais expliquer clairement stp ?
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  4. #4
    Membre éprouvé

    Homme Profil pro
    kiné passionné de dev
    Inscrit en
    Mars 2006
    Messages
    1 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : kiné passionné de dev

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 570
    Billets dans le blog
    1
    Par défaut
    Ben, calirement, j'essai de faire un service WCF qui fonctionnerait en parallele avec mon site(il permettra de déposer photos, vidéos, etc...)
    Alors, bêtement, j'utilise l'authentification "Username", dans la configuration du binding.

    Et, je galère à mort.

    Car d'abord, il faut un certificat, ensuite j'ai des problèmes car mon certificat n'est pas reconnu, alors il faut faire un magasin(un autorité de certificat), faire un certificat à partir de cette autorité.

    Et là, j'ai encore un problème avec mon certificat...

  5. #5
    Membre éprouvé

    Homme Profil pro
    kiné passionné de dev
    Inscrit en
    Mars 2006
    Messages
    1 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : kiné passionné de dev

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 570
    Billets dans le blog
    1
    Par défaut
    Bon, ben repartons à 0.

    Il y a-t-il quelqu'un qui pourrait m'expliquer étape par étape (sans me renvoyer à un tuto ou article) comment faire pour utiliser l'identification via un membership avec WCF?

  6. #6
    Invité de passage
    Profil pro
    Inscrit en
    Août 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 1
    Par défaut Où cela en est ?
    Bonjour,

    As-tu trouvé ta réponse pour un modéle WCF avec authentification MembershipProvider ? Visiblement je galère autant que toi avec VS2008 et IIS7.

    Merci.

Discussions similaires

  1. [WCF] Quelle authentification avec wsHttpBinding ?
    Par CypherX dans le forum Windows Communication Foundation
    Réponses: 1
    Dernier message: 17/09/2008, 21h20
  2. prob d'authentification avec Java Script !!!!!
    Par King_T dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 10/05/2006, 19h18
  3. Réponses: 2
    Dernier message: 10/05/2006, 07h50
  4. Pas de fenètre d'authentification avec .htaccess
    Par damjal dans le forum Apache
    Réponses: 2
    Dernier message: 02/11/2005, 08h40
  5. [MySQL] mécanisme d'authentification avec BD
    Par lalyly dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 16/10/2005, 13h26

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