La configuration Blazor qui casse l'authentification Windows !

Je vous propose aujourd'hui de présenter une situation qui m'a fait perdre un certain temps ;).

Je dispose d'un projet Blazor qui utilise l'authentification Windows avec succès depuis quelques années. Lors d'une récente évolution, j'ai été amené à lui ajouter une seconde forme d'authentification.

Tout va bien jusqu'au moment où l'authentification Windows se met à ne plus fonctionner. Que le navigateur reconnaisse le site comme étant un site de confiance ou non. L'utilisateur ne reçoit plus de demande d'authentifications.

Le problème est lié à l'appel de la méthode .AllowAnonymous() après le maping des composants  Blazor. L'utilisateur peut être anonyme. La demande de challenge ne se fait plus non plus.

Exemple de code :


app.MapRazorComponents<App>()
  .AddInteractiveServerRenderMode()
  .AllowAnonymous();

Pour résoudre le problème, il faut donc mettre en place une logique qui n'utilise la méthode AllowAnonymous() qu'à partir du moment où l'authentification Windows n'est pas requise.

Jérémy Jeanson

Comment utiliser Visual Studio 2026 avec les builds Azure DevOps ?

Vous souhaitez utiliser Visual Studio 2026, et ses builds tools dans votre CI / CD avec Azure Devops, mais cela ne fonctionne pas ?

Pas de panique, ce scénario est parfaitement supporté. Il suffit de mettre à jour vos agents de build avec une version 4.266.2 ou supérieure .

Petit lien ver la Release v4.266.2 · microsoft/azure-pipelines-agent

Features

  • Add Visual Studio 2026 (version 18.0) support to capability detection (#5406)
Jérémy Jeanson

NU1510, le warning de .net 10 que vous allez apprendre à aimer !

Pour débuter cette nouvelle année, je souhaite vous parler d’un warning que j’affectionne tout particulièrement.

Avant d’aller plus loin, non je ne suis pas masochiste. J’e n’aime pas particulièrement les warnings, mais j’aime les résoudre. Chaque warning résolu permet d’éviter un futur problème.

Avec .net 10, un nouveau warning a fait son apparition. Le warning référencé NU1510. Celui-ci met en avant les projets qui ont des références inutiles. Il met aussi en avant la référence inutile.

Quand on aime les projets propres, c’est un must.

Petite subtilité qui me fait tout particulièrement apprécier ce warning : celui-ci met aussi en avant les dépenses transitives qui sont référencées manuellement (dans le petit monde .net on perle souvent de dépendances indirectes au lieu de dépenses transitives). Ce type de référence se produit souvent quand on souhaite forcer une montée de version suite à la découverte d’une faille sur une dépendance transitive. Quand la dépendance directe est mise à jour, et qu’elle cible la dernière version de la dépendance transitive, le warning apparait. J’adore !

Jérémy Jeanson

Pourquoi les architectures monolithiques sont-elles à la mode ?

Bienvenue en 2025 ! Année qui sonne le glas des architectures de microservices au profit des monolithes.

Attention : avant de me faire traiter de troll, j’annonce clairement la couleur. L’idée de cet article n’est pas de troller, mais d’affirmer un fait que nous sommes nombreux à dénoncer, et qui ne date malheureusement pas d’hier. Le microservice, ce n’est pas la panacée, et cela peut couter très cher (performances, complexité de déploiement, coûts d’exploitation). Si vous ne voyez pas ce que je dénonce, réfléchissez à ces applications réparties en 5 ou 6 conteneurs, avec presque autant de sidecars, et de conteneurs d’initialisation. On parle aussi des x frameworks pour simplifier la configuration, et l’orchestration alors que l’on utilise certainement kubernetes ? On ajoutera de l’Open Id Connect, ou toute autre solution de STS (Security Token Service) ? Les 10 repos Git pour un seul produit ?

Depuis que des sociétés comme Amazon Prime Video ont annoncé l’abandon des microservices, certains architectes ouvrent enfin les yeux. Dommage qu’il ait fallu attendre aussi longtemps.

Un nouveau mouvement émerge : l’adoption des architectures monolithiques.

Oui « monolitique ». Le mot a été lâché. Nos ayatollahs des microservices ne semblent pas avoir trouvé mieux. L’architecture monolithique qui était autrefois l’ennemie jurée devient un buzz word (pas encore au point de concurrencer l’IA, n’ayez crainte).

Il y a aussi une variante que j’aime beaucoup : « le monolithique modulaire ».

Plus sérieusement : ce que l’on veut, ce n’est pas du monolithique. On ne veut pas d'un nième tas de code spaghettis. On veut que les développeurs, et architectes fassent du KISS, du SOLID, du DRY, du YAGNI. En fait, on vous propose simplement de revenir aux solutions n tiers, avec tous les raffinements des technologies de développement modernes.

Conclusion

S’il vous plait, ne me parlez plus d’architecture monolithique. Parlez de belles solutions avec n tiers propres, évolutifs, et clairement définis (petit rappel : "n" peut être égal à 1).

Merci Amazon !

Jérémy Jeanson

Comment en finir avec les problèmes d'authentification, et MapStaticAssets?

Depuis .net 9, et l'arrivée de MapStaticAssets, l’accès aux CSS, JS, et autres assets a un peu changé. Ce qui peut poser problème au moment d’ajouter une authentification a son site. Les fichiers deviennent inaccessibles. Notre belle page de login est tout de suite beaucoup moins sexy sans CSS, et sans images.

Depuis quelques mois, la documentation a été mise à jour afin de résoudre le problème, et recommander l'usage de la méthode ShortCircuit().

Exemple :


app.MapStatiAssets()
  .ShortCircuit();

L'appel de ShortCircuit() après MapStaticAssets() résout définitivement le problème, mais il supprime aussi les autres middlewares pouvant profiter à vos assets. Si vous souhaitez utiliser vos autres middlewares avec vos assets statiques, l'approche suivante est préférable :

Exemple :


app.MapStaticAssets()
  .Add(endpointBuilder => endpointBuilder.Metadata.Add(new AllowAnonymousAttribute()));

Celle-ci ajoute les metadatas utiles afin que les assets statiques soient accessibles à un utilisateur anonyme.

Jérémy Jeanson