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

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    février 2010
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2010
    Messages : 184
    Points : 362
    Points
    362
    Par défaut Authentification de base sur une connexion non SSL effectuée via une appli du pack office 2010 et plus.
    Bonjour,

    Ceci n'est pas une question mais une réponse à un problème pour le quel je n'ai trouvé de réponse que sur 1 forum américain. D’où ce poste.

    OK le titre est plutôt incompréhensible, je vous encourage donc à aller lire cet article MS ici (en français)
    Pour ceux qui ne veulent pas tout lire, la solution est décrite dans l'article MS, et un fichier .VBS perso pour une mise à jour de la base de registre est attaché à ce poste.

    Notez avant d'aller plus loin que ce problème sera plutôt rencontré par des clients office en entreprise. Problème lié au fonctionnement de leur réseau interne qui est généralement sécurisé par des accès avec login et mot de passe mais en http. Alors que les connexions securisées sur le web sont ssl normalement associées au protocole https et donc accepter par office... enfin ceci n'est que mon avis d'inculte en la matière.

    Notez aussi que la solution que je propose est pour le client office.

    Voila ceci étant dit, je vais essayé d'expliquer le problème:

    Sur excel il est possible d'importer des données directement du site si les données sont déjà sous forme de tableau
    par le menu :
    -Données|Données Externes|Web
    -Puis on saisie l'adresse dans la barre d'adresse et un petit clic sur le petit bouton juste à droite de cette barre
    -Une fois la page affichée excel met en évidence les parties de la page qu'il juge apte à importer.
    -On sélectionne alors la partie qui nous intéresse et on clic sur le bouton importer en bas à droite
    -En suite excel demande de définir la cellule de référence de l'import et de valider ce choix... jusque la tout vas bien.

    à partir de ce moment si la connexion requière un login et un mot de passe tout s’arrête et vous recevez alors un message du genre :"impossible de suivre le lien jusqu’à sa destination"
    la cellule de référence prend alors la valeur "echec..."

    Le problème était pour moi d'autan plus gênant que j'utilise la propriété QueryTables d'excel VBA pour automatiser tout cela
    alors que la méthode Refresh(lancement de l'import en VBA) ne renvois aucune erreur même en passant par la classe d’événement associée au querytables.

    La solution finalement est d'obliger office à accepter ce type de connexion en ajoutant la clé de registre Dword BasicAuthLevel comme expliqué dans l'article MS

    Voici la partie du code VBS du fichier joint qui met à jour la BDR et utilisable tel quel en VBA
    Mais pour le VBA il est préférable d'ajouter le type de données lors du dimensionnement des variables

    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
     
    sub CreatRegKey
     
    dim WshShell
    dim MaClef, ValeurClef
    dim verif, message, alerte, titre
    dim NumVersion
     
    	NumVersion = OfficeVersion
    	MaClef="HKCU\Software\Microsoft\Office\" & NumVersion & ".0\Common\Internet\BasicAuthLevel"
    	'WScript.Echo MaClef
    	ValeurClef=2
     
    	Set WshShell = wscript.CreateObject("WScript.Shell")
    		with WshShell
    			.RegWrite MaClef, ValeurClef, "REG_DWORD"
    			Verif = .RegRead (MaClef)
    		End With
    	Set WshShell = Nothing
     
    	if Verif=ValeurClef then
    		message="The registry has been successfully modified !"
    		alerte=vbExclamation
    	else
    		message="An error occurred please contact your admin !"
    		alerte=vbCritical
     
    	end if
    	titre = "Activation Connection Base non ssl Via Http..."
    	msgbox message,alerte,titre
    end sub
     
    Function OfficeVersion
    dim WshShell
    dim MaClef, ValeurClef, ClefPath
     
    	ClefPath="HKLM\Software\Microsoft\Windows\Currentversion\App Paths\"
    	MaClef="excel.exe\path"
     
    	Set WshShell = wscript.CreateObject("WScript.Shell")
    		with WshShell
    			ValeurClef = .RegRead (ClefPath&MaClef)
    		End With
    	Set WshShell = Nothing
    	ValeurClef = right(ValeurClef,3)
    	OfficeVersion = left(ValeurClef,2)
    End function
    Voila il est probable que cela aide peu de personnes mise à part les gens qui gère le déploiement d'office dans leurs entreprise

    Philippe
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. [XL-2010] créer une connexion excel vers Sybase via une requête sous VBA
    Par Freudsw dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/10/2015, 17h12
  2. [ZF 1.11] Authentification Http basée sur une table
    Par keaton7 dans le forum Zend_Acl & Zend_Auth
    Réponses: 2
    Dernier message: 07/03/2013, 11h39
  3. [EJB3] EJB3 non sérialisable à cause d'une connexion JMS?
    Par Orus dans le forum Java EE
    Réponses: 3
    Dernier message: 17/01/2011, 14h38
  4. [PasswordRecovery][SSL] envoi d'email via une connexion securisée
    Par TheBlackReverand dans le forum ASP.NET
    Réponses: 2
    Dernier message: 27/03/2009, 18h05

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