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

Silverlight Discussion :

Authentification Windows Silverlight / WCF


Sujet :

Silverlight

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 77
    Points : 54
    Points
    54
    Par défaut Authentification Windows Silverlight / WCF
    Bonjour à tous,

    Je ne sais pas si mon post est mieux ici ou dans le forum WCF auquel cas, déplacez le svp.

    J'ai une application Silverlight qui appelle un service WCF. J'aimerais qu'au lieu d'utiliser un compte anonyme lors de l'utilisation du service WCF, il utilise un compte bien spécifique.

    J'ai donc spécifié un compte dans le pool d'application qui est utilisé par mon service WCF. J'ai aussi décoché l'authentification anonyme.

    Le problème est que lorsque j'appelle mon service WCF, une fenêtre d'authentification s'ouvre ...

    SI je supprime la référence de service et que je l'ajoute idem, une fenêtre s'ouvre.

    Cette fenêtre n'apparait plus si je remet l'identification prédéfini sur le pool d'application.

    voici le web.config de mon service WCF :

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    <?xml version="1.0"?>
    <configuration>
      <configSections>
        <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
          <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
            <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
            <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
              <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere"/>
              <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
              <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
              <section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
            </sectionGroup>
          </sectionGroup>
        </sectionGroup>
        <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
          <section name="FTPSA_WCF_Service.My.MySettings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
        </sectionGroup>
      </configSections>
      <system.web>
        <compilation debug="true" strict="false" explicit="true">
          <assemblies>
            <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
          </assemblies>
        </compilation>
        <pages>
          <controls>
            <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
          </controls>
        </pages>
        <httpHandlers>
          <remove verb="*" path="*.asmx"/>
          <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
          <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
          <add verb="GET,HEAD" path="ScriptResource.axd" validate="false" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        </httpHandlers>
        <httpModules>
          <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        </httpModules>
        <authentication mode="Windows"/>
      </system.web>
      <system.serviceModel>
        <services>
          <service behaviorConfiguration="Main_behavior" name="FTPSA_WCF_Service.FTPSA_WCF_Service">
            <endpoint address="" binding="basicHttpBinding" contract="FTPSA_WCF_Service.IFTPSA_WCF_Service">
              <identity>
                <dns value="localhost" />
              </identity>
                      </endpoint>
            <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
          </service>
        </services>
        <behaviors>
          <serviceBehaviors>
            <behavior name="Main_behavior">
              <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
              <serviceMetadata httpGetEnabled="true"/>
              <!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information -->
              <serviceDebug includeExceptionDetailInFaults="true"/>
            </behavior>
          </serviceBehaviors>
        </behaviors>
        	<!--<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>-->
      </system.serviceModel>
      <system.webServer>
        <modules runAllManagedModulesForAllRequests="true">
          <remove name="ScriptModule"/>
          <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        </modules>
        <validation validateIntegratedModeConfiguration="false"/>
        <handlers>
          <remove name="WebServiceHandlerFactory-Integrated"/>
          <remove name="ScriptHandlerFactory"/>
          <remove name="ScriptHandlerFactoryAppServices"/>
          <remove name="ScriptResource"/>
          <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
          <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
          <add name="ScriptResource" verb="GET,HEAD" path="ScriptResource.axd" preCondition="integratedMode" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        </handlers>
      </system.webServer>
      <system.codedom>
        <compilers>
          <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4">
            <providerOption name="CompilerVersion" value="v3.5"/>
            <providerOption name="OptionInfer" value="true"/>
            <providerOption name="WarnAsError" value="false"/>
          </compiler>
        </compilers>
      </system.codedom>
      <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1" appliesTo="v2.0.50727">
          <dependentAssembly>
            <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
            <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
            <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
          </dependentAssembly>
        </assemblyBinding>
      </runtime>
      <system.diagnostics>
        <sources>
          <source name="System.ServiceModel"
                  switchValue="Information, ActivityTracing"
                  propagateActivity="true">
            <listeners>
              <add name="WCFListener"
                  type="System.Diagnostics.XmlWriterTraceListener"
                  initializeData="c:\wcflog\WCFTraces.svclog"  />
            </listeners>
          </source>
        </sources>
      </system.diagnostics>
      <applicationSettings>
        <FTPSA_WCF_Service.My.MySettings>
          <setting name="WCF_Service_Path" serializeAs="String">
            <value>c:\inetpub\WebServicesRoot\FTPSA_WCF_Service_Debug</value>
          </setting>
        </FTPSA_WCF_Service.My.MySettings>
      </applicationSettings>
    </configuration>
    Vous remarquerez que j'ai ajouté la balise

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <authentication mode="Windows"/>
    J'ai aussi essayé d'ajouter ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
              <security mode="TransportCredentialOnly">
                <transport clientCredentialType="Windows" />
              </security>
    au fichier ServiceReferences.ClientConfig de mon client Silverlight.

    Mais il me surligne "clientCredentialType" en me disant que cet attribut nestpas déclaré.

    Voyez vous d'où ca peut venir ?

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    En changeant simplement le compte qui fait tourner ton pool d'application, cela ne règlerait pas le problème ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 77
    Points : 54
    Points
    54
    Par défaut
    Le compte utilisé est un compte du domaine enregistré dans l'AD.

    J'essaierais demain avec mon propre compte mais je ne vois pas en quoi cela changerais quelquechose :s

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 77
    Points : 54
    Points
    54
    Par défaut
    J'ai essayé 3 comptes différents dont un compte administrateur du domaine.
    Pas plus de succès ...

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur / architecte
    Inscrit en
    Juillet 2009
    Messages
    473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur / architecte

    Informations forums :
    Inscription : Juillet 2009
    Messages : 473
    Points : 674
    Points
    674
    Par défaut
    Je suis pas sûr d'avoir compris ton problème. Tu utilises ton application SL en mode d'authentification windows (compte AD), mais côté serveur tu veux pouvoir executer les requêtes WCF avec un compte bien précis ?

  6. #6
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Citation Envoyé par chrisdot Voir le message
    Je suis pas sûr d'avoir compris ton problème. Tu utilises ton application SL en mode d'authentification windows (compte AD), mais côté serveur tu veux pouvoir executer les requêtes WCF avec un compte bien précis ?
    Effectivement, c'est la question que je viens de me poser en relisant le post: tu veux de l'authentification Windows ou bien tu veux que ce soit un compte unique qui exécute l'application ?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 77
    Points : 54
    Points
    54
    Par défaut
    Alors mon but premier est d'utiliser l'authentification Windows, pour que le service WCF se connecte à la base de donnée en SSPI et pas en mode de connexion SQL.

    Mais je n'y arriverais pas, j'ai donc essayé de contourner le problème en spécifiant directement un compte sur le pool d'application du service WCF.

    Au final je ne veux pas de mode mixte sur mon serveur SQL. C'est déconseillé par Microsoft si je ne me trompes pas.

  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 Pyroa Voir le message
    Alors mon but premier est d'utiliser l'authentification Windows, pour que le service WCF se connecte à la base de donnée en SSPI et pas en mode de connexion SQL.

    Mais je n'y arriverais pas, j'ai donc essayé de contourner le problème en spécifiant directement un compte sur le pool d'application du service WCF.

    Au final je ne veux pas de mode mixte sur mon serveur SQL. C'est déconseillé par Microsoft si je ne me trompes pas.
    L'authentification WCF n'a rien a faire la dedans en fait! Même si le client est authentifié via une authentification Windows, le compte sous lequel tourne IIS (et donc WCF) est celui du pool. Ce que tu peux faire par contre c'est mettre en place l'impersonation: lorsqu'un utilisateur utilise le service WCF c'est avec le compte de l'utilisateur qu'est executé la requête. Cependant le compte de l'app pool doit avoir les droits de faire de l'impersonation (à regler dans l'AD)

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 77
    Points : 54
    Points
    54
    Par défaut
    Je m'en doutais un peu pour le pool.

    J'ai spécifié un compte dans le pool d'application à la place du service reseau. Tel un compte de service.

    D'après cet article il est dit qu'il faut créer un SPN si on utilise un compte de domaine.

    On a donc fait ca hier. Maintenant je n'ia plus de fenêtre d'authentification, sauf que maintenant je suis obligé d'utiliser le compte qui est lié au SPN pour tout les pools d'application de ce serveur. Ce n'est pas un problème.
    Mais surtout le service WCF me renvoi l'erreur suivante :

    "Security settings for this service require 'Anonymous' Authentication but it is not enabled for the IIS application that hosts this service. "

    En cherchant sur le net on tombe sur plusieurs article comme celui-ci.

    Mais soit je suis un boulet de premier ordre, soit c'est mal expliqué ( vous avez le droit de me traiter de boulet au besoin ) :

    Dans l'article on parle de la configuration du service WCF, hébergé dans une application web. Ils disent donc de modifier le web.config comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <basicHttpBinding>
      <binding>
        <security mode="TransportCredentialOnly">
          <transport clientCredentialType="Windows" />
        </security>
      </binding>
    </basicHttpBinding>
    Mais ca je suis désolé c'est pas dans le web config du service WCF mais dans le webconfig de l'application cliente !!!

    Je suis perdu.

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 77
    Points : 54
    Points
    54
    Par défaut
    Bon en changeant ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            <endpoint address="" binding="basicHttpBinding" contract="FTPSA_WCF_Service.IFTPSA_WCF_Service">
              <identity>
                <dns value="*" />
              </identity>
            </endpoint>
    Dans le Web.config de l'application web qui héberge le service WCF par ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            <endpoint address="" binding="basicHttpBinding" contract="FTPSA_WCF_Service.IFTPSA_WCF_Service">
              <identity>
                <dns value="localhost" />
              </identity>
            </endpoint>
    J'ai maintenant accès via IE7 à mon service WCF, c'est déjà une bonne chose. sauf que je ne peux toujours pas référencer pour service web dans mon application Silverlight.

    Cela me renvoi l'erreur :


    Les métadonnées contiennent une référence qui ne peut pas être résolue*: 'http://*****:81/FTPSA_WCF_Service/FTPSA_WCF_Service.svc?wsdl'.
    Le document WSDL contient des liens qui n'ont pas pu être résolus.
    Une erreur s'est produite lors du téléchargement de 'http://*****:81/FTPSA_WCF_Service/FTPSA_WCF_Service.svc?xsd=xsd0'.
    La demande a échoué avec l'état HTTP 401 : Unauthorized.
    Metadata contient une référence qui ne peut pas être résolue*: 'http://*****:81/ftpsa_wcf_service/ftpsa_wcf_service.svc'.
    La demande HTTP n'est pas autorisée avec un schéma d'authentification client 'Anonymous'. L'en-tête d'authentification reçu du serveur était 'Negotiate,NTLM'.
    Le serveur distant a retourné une erreur*: (401) Non autorisé.
    Si le service est défini dans la solution actuelle, essayez de générer la solution et d'ajouter de nouveau la référence du service.
    J'avance j'avance ...

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 77
    Points : 54
    Points
    54
    Par défaut
    J'ai trouvé un très bon document

    Je lis ca et je vous tiens au courant.
    Alors peut rajouter le bout d'XML que j'ai mit plus haut dans le web.config de l'application web qui héberge le service WCF. Grâce à ce document là je sais ce que je fais et ou il faut le faire !

  12. #12
    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 Pyroa Voir le message
    J'ai trouvé un très bon document

    Je lis ca et je vous tiens au courant.
    Alors peut rajouter le bout d'XML que j'ai mit plus haut dans le web.config de l'application web qui héberge le service WCF. Grâce à ce document là je sais ce que je fais et ou il faut le faire !
    L'autentification se fait en deux temps: y'a l'authentification IIS et après celle de WCF (car WCF n'est pas uniquement sur IIS)

    Il faut mettre l'authentification iis sur Windows:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <system.web>
            <authentication mode="Windows" />
    </system.web>

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 77
    Points : 54
    Points
    54
    Par défaut
    Citation Envoyé par PitMaverick78 Voir le message
    L'autentification se fait en deux temps: y'a l'authentification IIS et après celle de WCF (car WCF n'est pas uniquement sur IIS)

    Il faut mettre l'authentification iis sur Windows:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <system.web>
            <authentication mode="Windows" />
    </system.web>
    Oui dans le web.config du service WCF. Je l'ai mit
    Impossible d'ajouter la référence de service dans mon application Silverlight.
    Je ne trouves pas le problème ...

    Pour information l'authentification a sein de notre domaine est une authentification Kerberos.

    J'ai l'impression que Visual Studio lorsqu'il ajoute la référence de service utilise une connexion anonyme.

  14. #14
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Tu as essayé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <system.web>
            <authentication mode="Negociate" />
    </system.web>
    Regarde ce lien aussi: http://blogs.msdn.com/b/keithmg/arch...edentials.aspx

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 77
    Points : 54
    Points
    54
    Par défaut
    Citation Envoyé par Thomas Lebrun Voir le message
    Tu as essayé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <system.web>
            <authentication mode="Negociate" />
    </system.web>
    Regarde ce lien aussi: http://blogs.msdn.com/b/keithmg/arch...edentials.aspx
    Ah puré non j'ai pas pensé à mettre Negotiate C'est pour Kerberos en plus ca ...
    J'essaie demain ..

  16. #16
    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
    Il faut aussi que dans le site sur IIS t'actives l'authentification Windows (et desactive l'anonyme) pour le website

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 77
    Points : 54
    Points
    54
    Par défaut
    Citation Envoyé par PitMaverick78 Voir le message
    Il faut aussi que dans le site sur IIS t'actives l'authentification Windows (et desactive l'anonyme) pour le website
    oui oui ca c'est fait

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 77
    Points : 54
    Points
    54
    Par défaut
    Je désespère vraiment de trouver une solution ...

    Negotiate n'est pas une valeur autorisée ...

    Dans MSDN seule la valeur Windows est utilisé pour une authentification Kerberos au niveau du binding.

    Pour le system.Web, ce n'est pas authorisé non plus. là Encore MSDN préconise bien la valeur Windows pour une authentification Kerberos

    J'ai essayé un custombinding d'après le lien donné par Thomas : pas mieux.

    Sinon en mettant Ntlm à la place de Windows dans le binding, j'ai une fenêtre d'authentification qui s'ouvre, mais j'ai beau me logguer ca ne fonctionne pas ...

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 77
    Points : 54
    Points
    54
    Par défaut
    Pas moyen de trouver une solution, j'ai donc supprimé le SPN redémarré le serveur et viré toutes les authentifications Windows et le compte spécifique sur le pool d'application.

    Je suis dégouté.

    Obligé de passer le serveur SQL en mode mixte à cause de cette m***

    En tout cas merci d'avoir cherché la solution avec moi !

  20. #20
    Membre habitué Avatar de freezer08
    Homme Profil pro
    Inscrit en
    Février 2011
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations forums :
    Inscription : Février 2011
    Messages : 59
    Points : 143
    Points
    143
    Par défaut
    Je compatis, ça peut vite devenir une galère sans nom à configurer. Pour avoir déjà porté un projet sur ce type d'auth, je te livre mes éléments de config.

    web.config :
    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
     
    <system.web>
       <authentication mode="Windows"/>
       <identity impersonate="true"/>
    </system.web>
     
    <system.serviceModel>
       <bindings>
        <customBinding>
            <binding name="SoatUndergroundBinaryHttpBinding">
    	    <binaryMessageEncoding/>
    	    <httpTransport maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" authenticationScheme="Negotiate"/>
    	</binding>
       </customBinding>
      </bindings>
    </system.serviceModel>
    ServiceReferences.ClientConfig :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <system.serviceModel>
        <bindings>
          <customBinding>
            <binding name="customHttpBindingEndPoint">
              <binaryMessageEncoding/>
              <httpTransport maxReceivedMessageSize="2147483647" maxBufferSize="2147483647"/>
            </binding>
          </customBinding>
        </bindings>
    </system.serviceModel>
    Sans oublier de désactiver le mode anonyme sur IIS, évidemment.
    J'espère que ça pourra t'aider !

Discussions similaires

  1. Réponses: 13
    Dernier message: 06/06/2011, 15h25
  2. Service WCF et authentification Windows
    Par GilardeauG dans le forum Services Web
    Réponses: 1
    Dernier message: 18/03/2011, 18h03
  3. Silverlight + WCF --> authentification
    Par p1k1 dans le forum Silverlight
    Réponses: 5
    Dernier message: 26/01/2011, 09h40
  4. Authentification Windows sur Application Silverlight 4
    Par maxwel56 dans le forum Silverlight
    Réponses: 3
    Dernier message: 17/06/2010, 19h48
  5. Silverlight WCF et windows service
    Par psion2 dans le forum Silverlight
    Réponses: 5
    Dernier message: 27/04/2009, 20h43

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