AsyncLocal et ExecutionContext

Dans ce court article, je décris un problème que j’ai trouvé intéressant. Cela concerne ce qu’il me semble être un défaut de design de .NET avec AsyncLocal et ExecutionContext. On pourrait même simplifier en ne parlant que de AsyncLocal car je vois l’existence de ExecutionContext comme une conséquence pour supporter le premier. Je pense que […]

ASP.NET Core OpenIdConnect et liens dans des documents MS Office

Si vous utilisez le package standard Microsoft.AspNetCore.Authentication.OpenIdConnect pour gérer l’authentification d’une application web ASP.NET Core, vous devriez pouvoir observer un problème intéressant si vous tentez d’accéder à une page protégée (requérant un utilisateur authentifié) à partir d’un document ouvert dans un programme MS Office tel que Word. Pour une introduction plus complète sur le package […]

Event Tracing for Windows (ETW) et .NET Core

Event Tracing for Windows (ETW) et .NET Core Event Tracing for Windows est un framework pour gérer les traces de diagnostic sur Windows Il est mature depuis de nombreuses années et est intimement lié au système d’exploitation. Il est supporté depuis longtemps sur le framework .NET (à des niveaux d’évolution différents au fil de ses […]

Comment détecter la veille prolongée du système depuis un service Windows

Les événements de mise en veille prolongée (Sleep / Hibernate) peuvent s’avérer indispensables pour une application connectée, car les connexions vont être interrompues. Cet article présente deux approches: la première basée sur l’API standard SystemEvents, qui pose problème dans un service Windows; l’autre basée sur WMI qui fonctionnera dans tous les cas de figure (pour […]

Sécuriser des WebApi avec OAuth2 et Client Credentials?

J’ai déjà eu à implémenter des applications clientes compatibles OAuth (1 et 2), c’est-à-dire côté consommateur de ressources protégées, mais ce n’est que récemment que je me suis intéressé à la mise en place d’une solution de sécurité pour un ensemble d’applications. J’ai logiquement étudié ce qui se fait avec OAuth 2 et OpenID Connect […]

Terminer proprement un programme console

Les programmes console ne sont pas morts: il est courant de permettre à un service Windows d’être lancé en mode console, et ASP.NET Core est initialement prévu pour être exécuté en mode console (en self host). Dans ce contexte, se pose rapidement le problème de terminer proprement le contexte d’exécution (libérer les ressources IDisposable, éventuellement […]