.NET framework (C#) ne joint pas Sharepoint
La méthode httpWebRequest.GetResponse() indique une erreur du style la connexion sous jacente a été fermée...
Erreurs potentielles
- The requested site does not appear to have claims enabled or the Login Url has not been set.
- Erreur au niveau du GetResponse() sur l'élément webRequest ou HTTPWebRequest: Connexion Sous jacente a été fermée
1 - Vérifier la version de l'appli
- SI c'est une version < 4.7.1 alors cet article est pour vous
- Sinon ... Google it .. désolé....
2 - Ce que j'ai compris
Les versions précédente de .NET ne prennent pas en compte le réglage de l'OS et ne prennent donc pas l'authent Forte (TLS, TLS11, TLS12)
Pour Sharepoint Online, depuis février 2021, MS à décider de virer la prise en charge de autre chose que ces TLS avec, en prime une liste de crypto que je trouve peu nombreux (mais j'y connais rien..).
dans mon cas, ajouter les lignes suivantes au fichier Appli.exe.config
<runtime>
<AppContextSwitchOverrides value="Switch.System.Net.DontEnableSystemDefaultTlsVersions=false"/>
</runtime>
a suffit.
Un peu de lecture :
Best practice TLS pour .net (le comportement en dessous de la version 4.7.1 est un peu vaseux...)
Best Practice for TLS
Mitigation par juste la modif du .config (incroyable!)
Mitigation TLS
en gros il faut rajouter :
<runtime>
<AppContextSwitchOverrides value="Switch.System.Net.DontEnableSystemDefaultTlsVersions=false"/>
</runtime>
dans le exe.config.
La ou MS dit qu'ils dégage les anciens protocoles de leur plateforme.
Troubleshoot Sharepoint
Régler la solution par modif de la clé de registre (Donc pour toutes les appli)
par ici
Modifier l'ordre de chiffrement par défaut (tous le PC)
CIPHER Suite Order
Rendons a César ce qui lui appartient :
Que serait le monde sans stack overflow
et
Merci kevin, ça marche pas mal ! Support TLS 1 2 sans recompiler
Juste un point important, si vous positionnez les clés de registres a 0 la modif dans le exe.config ne fonctionnera pas...