.NET Framework 4.7.2 Developer Pack Early Access build 3056 est disponible
Et apporte les injections de dépendance dans WebForms

Le , par Stéphane le calme, Chroniqueur Actualités
ASP.NET - Injection de dépendance dans WebForms

Lorsque deux classes entrent en interaction, un couplage se crée. Il existe cependant une technique permettant de limiter l’impact de ce couplage sur la maintenabilité du code. Il s’agit de l’injection de dépendance.

L’injection de dépendance permet d’établir de façon dynamique une relation entre les classes. Elle permet ainsi de découpler les éléments les uns des autres et de ne plus décrire explicitement leurs relations dans le code. De ce fait, elle facilite la modification ultérieure du code et l’ajout de nouvelles fonctionnalités.

MVC Framework prend déjà en charge l'injection de dépendance, mais il a été très difficile d'utiliser cette technique dans l'application ASP.NET Web Forms. Cette nouvelle fonctionnalité facilitera l'utilisation de l'injection de dépendance dans l'application ASP.NET Web Forms. Cette fonctionnalité permet les éléments suivants :
  • prise en charge de l'injection basée sur le setter, l'interface et le constructeur dans le projet d'application Web dans Handler, Module, Page, Contrôle utilisateur et Contrôle personnalisé ;
  • prise en charge de l'injection à base de setters et d'interfaces dans le projet de site Web dans Handler, Module, Page, Contrôles utilisateur et Contrôles personnalisés ;
  • être capable de brancher différents cadres d'injection de dépendance.

ASP.NET - Cookie SameSite

SameSite permet de mitiger les risques liés aux attaques de type CSRF (Cross-Site Request Forgery) et XSSI (Cross-Site Script Inclusion). Le principe de base de SameSite est similaire à celui des flags HttpOnly et Secure : il permet de contrôler le comportement des cookies, en définissant quand ces derniers peuvent être envoyés et quand ils ne le doivent pas. Same-Site propose deux politiques différentes, qui seront définies par les valeurs suivantes (sensibles à la casse) : Strict (par défaut) et Lax.

En mode Strict, le cookie concerné par cette instruction ne sera envoyé que si la requête provient du même site web. En mode Lax, une exception est ajoutée pour l’envoi du cookie dans le cas où la requête ne provient pas du site d’origine

Il est supporté :
  • par l'objet HttpCookie ;
  • par les cookies FormsAuthentication et SessionState.

Vous pouvez définir SameSite pour un objet HttpCookie comme suit.

Code : Sélectionner tout
1
2
 var c = new HttpCookie("secureCookie", "same origin");
    c.SameSite = SameSiteMode.Lax;
Vous pouvez configurer HttpCookie SameSite au niveau de l'application via web.config comme suit.

Code : Sélectionner tout
1
2
3
<system.web>
    <httpCookies sameSite="Strict"/>
</system.web>
Vous pouvez ajouter des cookies SameSite for FormsAuthentication et SessionState via web.config.

Code : Sélectionner tout
1
2
3
4
5
6
7
8
<system.web>
    <authentication mode="Forms">
      <forms cookieSameSite="Lax">
        <!-- ....    -->
      </forms>
    </authentication>
    <sessionState cookieSameSite="Lax"></sessionState>
  </system.web>
SQL - Prise en charge d’Azure AD Universal et de l'authentification multifacteur

Microsoft explique avoir étendu SqlClient Connection String en introduisant un nouveau mot clé d'authentification Azure AD Interactive pour prendre en charge l’authentification multifacteur. Cela permet également la prise en charge de l'authentification Azure AD.

Cette fonctionnalité introduit une nouvelle valeur pour le mot clé "Authentication" existant, en spécifiant une nouvelle méthode d'authentification appelée "Active Directory Interactive". La nouvelle méthode interactive prend en charge les utilisateurs Azure AD natifs et fédérés, ainsi que les utilisateurs invités Azure AD. Lorsque cette méthode est utilisée, l'authentification multifacteur imposée par Azure AD est prise en charge pour SQL DB. En outre, un mot de passe utilisateur est demandé dans le cadre d'une boîte de dialogue interactive.

Cette fonctionnalité peut être configurée avec des outils tels que SQL Server Data Tools (SSDT), comme illustré ci-dessous. Dans la dernière version de Visual Studio, une nouvelle option d'authentification appelée "Authentification interactive Active Directory" peut être utilisée pour prendre en charge l'authentification multifacteur dans la base de données SQL.


Prise en charge de la décompression ZLib vers DeflateStream

Cette fonctionnalité améliore le débit de décompression des archives ZIP en utilisant l'implémentation native de ZIP. Cela permet d'augmenter jusqu'à trois fois le débit des archives ZIP pendant la décompression. Il existe des différences mineures entre l'implémentation existante et l'implémentation native. Par conséquent, cette fonctionnalité est activée par défaut uniquement pour les applications ciblant .NET Framework 4.7.2.

Source : Microsoft


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de Michael Guilloux Michael Guilloux - Chroniqueur Actualités https://www.developpez.com
le 01/05/2018 à 14:36
.NET Framework 4.7.2 est disponible
avec le support de l'injection de dépendance dans les Web Forms et la sécurisation de cookies avec SameSite

Microsoft vient d'annoncer la sortie de .NET Framework 4.7.2, la deuxième mise à jour apportée .NET Framework 4.7 - disponible depuis maintenant un an. La version 4.7.2 de .NET Framework vient avec un bon nombre d'améliorations cryptographiques, une meilleure prise en charge de la décompression pour les archives ZIP et d'autres API aux types de collections. Ci-dessous un aperçu des principales nouveautés :

ASP.NET

Pour ASP.NET, cette version de .NET Framework introduit deux changements notables. Le premier est la prise en charge de l'injection de dépendance dans les Web Forms. Précisons que l'intérêt de l'injection de dépendance est qu'elle permet de découpler les objets et leurs dépendances de sorte que le code d'un objet n'a plus besoin d'être modifié simplement parce qu'une dépendance a changé.

L'autre changement est la prise en charge de SameSite pour la gestion des cookies. SameSite permet de contrôler le comportement des cookies, en définissant quand ces derniers peuvent être envoyés et quand ils ne le doivent pas. .NET Framework 4.7.2 ajoute une propriété HttpCookie.SameSite qui peut prendre les valeurs SameSiteMode.Strict ou SameSiteMode.Lax.

Lorsque la valeur est Strict, cela empêchera le cookie d'être envoyé par le navigateur au site cible dans un contexte de navigation cross-site. Autrement dit, le cookie ne sera envoyé que pour les requêtes du même site. Pour un site comme GitHub, cela signifie que si un utilisateur connecté suit un lien vers un projet GitHub privé posté sur un forum de discussion ou reçu par email, GitHub ne recevra pas le cookie de session et l'utilisateur ne pourra pas pour accéder au projet. La valeur Strict sera donc plus appropriée pour un site Web de banque par exemple qui ne souhaite probablement pas permettre la liaison de pages de transactions à des sites externes. La valeur Lax, quant à elle, vise à fournir un équilibre raisonnable entre la sécurité et la facilité d'utilisation pour les sites Web qui souhaitent gérer la session de connexion de l'utilisateur après que l'utilisateur arrive à partir d'un lien externe.

La prise en charge de SameSite s'applique aux objets HttpCookie, ainsi qu'aux cookies FormsAuthentication et System.Web.SessionState. Vous pouvez définir SameSite pour un objet HttpCookie comme suit :

Code C# : Sélectionner tout
1
2
 var c = new HttpCookie("secureCookie", "same origin"); 
c.SameSite = SameSiteMode.Lax;

Vous pouvez configurer HttpCookie SameSite au niveau de l'application en modifiant le fichier de configuration Web comme suit :

Code XML : Sélectionner tout
1
2
3
 <system.web> 
   <httpCookies sameSite="Strict" /> 
</system.web>

Vous pouvez ajouter SameSite pour les des cookies FormsAuthentication et SessionState en modifiant le fichier de configuration Web comme suit :

Code XML : Sélectionner tout
1
2
3
4
5
6
7
8
 <system.web> 
   <authentication mode="Forms"> 
      <forms cookieSameSite="Lax"> 
         <!-- ...   --> 
      </forms> 
   <authentication /> 
   <sessionSate cookieSameSite="Lax"></sessionState> 
</system.web>

SQL

L'une des principales nouveautés ici est la prise en charge d'Azure Active Directory Authentication (mécanisme de connexion à Azure SQL Database et SQL Data Warehouse à l'aide d'identités dans Azure Active Directory) et l'authentification multifacteur. À propos, Microsoft explique que les exigences croissantes en matière de conformité et de sécurité veulent que de nombreux clients utilisent l'authentification multifacteur (MFA). En outre, les meilleures pratiques actuelles découragent l'inclusion de mots de passe utilisateur directement dans les chaînes de connexion. Pour ces raisons, Microsoft a étendu les chaînes de connexion SqlClient en introduisant un nouveau mot clé d'authentification Azure AD Interactive pour prendre en charge l'authentification multifacteur et Azure AD Authentication.

Cette fonctionnalité introduit une nouvelle valeur pour le mot clé « Authentication » existant, en spécifiant une nouvelle méthode d'authentification appelée « Active Directory Interactive ». Cette fonctionnalité peut être configurée avec des outils tels que SQL Server Data Tools (SSDT), comme illustré ci-dessous. Dans la dernière préversion de Visual Studio 15.7 également, une nouvelle option d'authentification appelée « Active Directory Interactive Authentication » peut être utilisée pour prendre en charge l'authentification MFA dans SQL Database.


Microsoft met également en avant des améliorations pour la fonctionnalité Always Encrypted conçue pour protéger les données sensibles, telles que les numéros de carte de crédit, qui sont stockées dans des bases de données Azure SQL Database ou SQL Server. Rappelons que la fonctionnalité Always Encrypted déjà permet aux clients de chiffrer des données sensibles dans des applications clientes et de ne jamais révéler les clés de chiffrement au moteur de base de données.

Autres changements

Il y a également des changements concernant l'implémentation des propriétés HttpClientHandler. .NET Framework 4.7.1 a ajouté huit propriétés à la classe HttpClientHandler, le gestionnaire de message par défaut utilisé par HttpClient. Cependant, deux d'entre elles lançaient une exception PlatformNotSupportedException, exception levée lorsqu'une fonctionnalité ne s'exécute pas sur une plateforme particulière. .NET Framework 4.7.2 fournit maintenant une implémentation pour ces propriétés. Les propriétés en question sont :
  • CheckCertificateRevocationList : qui permet d'obtenir ou définir une valeur qui indique si le certificat est vérifié dans la liste de révocation de l'autorité de certification ;
  • SslProtocols : qui permet d'obtenir ou définir le protocole TLS/SSL utilisé par les objets HttpClient gérés par l'objet HttpClientHandler.

Pour Windows Presentation Foundation (WPF), Microsoft parle essentiellement de nouvelles fonctionnalités qui permettent d'améliorer les diagnostics. Notons en outre que les applications compatibles HDPI pour Windows Forms, Windows Presentation Foundation (WPF) et Visual Studio Tools pour Office (VSTO) peuvent toutes être déployées à l'aide de ClickOnce, la technologie Microsoft qui permet à un utilisateur de Windows d'installer et de lancer une application en cliquant sur un lien dans une page Web. Vous trouverez plus de détails sur les nouveautés dans les notes de version de .NET Framework 4.7.2.

.NET Framework 4.7.2 est inclus dans Windows 10 April 2018 Update. Il est aussi disponible pour Windows 7 SP1 et les versions ultérieures de Windows, mais également Windows Server 2008 R2 et les versions ultérieures.

Sources : Blog Microsoft, Notes de version de .NET Framework 4.7.2

Et vous ?

Que pensez-vous des nouveautés de .NET Framework 4.7.2 ?
Lesquelles appréciez-vous le plus ? Pourquoi ?
Qu'attendez-vous encore de .NET Framework ?

Voir aussi :

.NET Framework 4.7.1 est disponible, avec le support de .NET Standard 2.0 et une amélioration des performances du ramasse-miettes
Microsoft publie la deuxième préversion de Blazor, son framework web .NET expérimental qui s'exécute au sein du navigateur
Microsoft annonce la sortie de la deuxième préversion de .NET Core 2.1, cette version est prête pour des tests plus larges
.NET Framework 4.7.2 Developer Pack Early Access build 3056 est disponible, et apporte les injections de dépendance dans WebForms
Avatar de redcurve redcurve - Membre averti https://www.developpez.com
le 01/05/2018 à 22:21
Même après installation du dev pack pas moyen de cibler le framework dans visual studio 2017
Contacter le responsable de la rubrique Accueil