Table of Contents

Choisir sa version

SESAR Webhook existe en deux versions, dont le code de traitement est le même.

Version Dépôt Plateforme
.NET SESARWebhookCore .NET 9 (net9.0-windows), ASP.NET Core, sous Windows
.NET Framework SESARWebhook .NET Framework 4.7.2, ASP.NET Web API 2, sous IIS

Privilégiez la version .NET pour tout nouveau déploiement. C'est celle que documente ce centre d'aide, et sa référence .NET est générée depuis son code.

Ce qui ne change pas

Les deux versions partagent :

  • le traitement : vérification du HashKey, déchiffrement du manifeste, choix du connecteur ou du gestionnaire ;
  • les routes de l'API HTTP, leurs verbes et le corps attendu ;
  • IWebhookHandler, WebhookHandlerBase et le chargement des DLL de gestionnaires ;
  • les connecteurs Système de fichiers, Zoho CRM et Dynamics 365, et l'aide OAuth2RefreshTokenHelper ;
  • le fichier de secrets connectors.secrets.json, sa structure et son chiffrement par DPAPI.

Différences

Sujet .NET Framework .NET
Hébergement IIS seulement Kestrel, ou IIS avec le Hosting Bundle ASP.NET Core 9
Construction nuget restore, puis msbuild dotnet build, dotnet publish
Configuration Clés plates dans Web.config : <add key="Connector:filesystem:Enabled" value="true" /> Sections JSON dans appsettings.json : "Connector": { "filesystem": { "Enabled": "true" } }, que des variables d'environnement peuvent surcharger
Portée DPAPI livrée LocalMachine dans Web.config CurrentUser dans appsettings.json
Taille maximale d'une requête 100 Mo, réglée dans Web.config Limite par défaut de Kestrel (30 000 000 octets) ou d'IIS
Connecteur SharePoint API REST de SharePoint : téléverse le manifeste en JSON Microsoft Graph : téléverse le courriel et les pièces jointes déchiffrés. Voir SharePoint Online
OAuth2ClientCredentialsHelper.ForSharePoint Portée du site SharePoint Portée de Microsoft Graph
ApiKeyHelper.InQueryString Remplace un paramètre de même nom Ajoute le paramètre, même s'il existe déjà
Erreurs internes Message masqué au client distant Message renvoyé dans le corps ({"Error": "..."})
SDK utilisé SecureExchanges SecureExchanges.NetCore
Noms des assemblies SESARWebHook.Core, etc. SESARWebHook.Core.NetCore, etc. Les espaces de noms ne changent pas

Un gestionnaire compilé pour une version ne se charge pas dans l'autre : les assemblies référencées n'ont pas le même nom.

Passer de .NET Framework à .NET

  1. Hébergement. Installez le runtime ASP.NET Core 9, ou le Hosting Bundle sous IIS, puis publiez l'application avec dotnet publish. Configurez le HTTPS (liaison IIS ou certificat Kestrel) et, si l'adresse change, mettez-la à jour dans SESAR. Voir Déployer sous Windows.
  2. Configuration. Reportez chaque clé de Web.config dans appsettings.json, en sections imbriquées, et doublez les barres obliques inverses des chemins. Vérifiez la portée DPAPI : Web.config était livré en LocalMachine, appsettings.json l'est en CurrentUser.
  3. Secrets. Déposez une version en clair de connectors.secrets.json, tirée de votre coffre de secrets : l'application la chiffre à son démarrage. L'ancien fichier chiffré n'est lisible qu'avec la même machine, la même portée, la même entropie et, en CurrentUser, le même compte. Voir Secrets et DPAPI.
  4. Gestionnaires. Recompilez-les pour net9.0-windows, contre SESARWebHook.Core.NetCore et SecureExchanges.NetCore. Retirez toute dépendance à System.Web et à ConfigurationManager. Revalidez ceux qui utilisent ForSharePoint ou InQueryString.
  5. SharePoint. Le connecteur fonctionne autrement : reprenez sa configuration et testez-le avant la production.
  6. Réponses d'erreur. Si un système lit les réponses du webhook, vérifiez-le : leur format change.