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.