Écriture de code de type sécurisé vérifié
Du code de type sécurisé est du code qui accède à des types uniquement de manière autorisée et bien définie. Prenons par exemple une référence d'objet valide, le code de type sécurisé peut accéder à la mémoire à des offsets fixes correspondant aux membres de champ en cours. Cependant, si le code accède à la mémoire à des offsets arbitraires hors des limites de la mémoire qui appartient aux champs de cet objet exposés publiquement, il n'est pas de type sécurisé.
La compilation juste-à-temps (JIT, Just-In-Time) exécute un processus appelé « vérification » qui examine le code et tente de déterminer s'il est de type sécurisé. Le code dont il est prouvé qu'il est de type sécurisé pendant la vérification est appelé code de type sécurisé vérifié. Le code peut être de type sécurisé mais non de type sécurisé vérifié, en raison des limites du processus de vérification ou du compilateur. Tous les langages ne sont pas de type sécurisé et certains compilateurs de langage, tels que Microsoft Visual C++, ne peuvent pas générer de code managé de type sécurisé vérifié. Pour déterminer si le compilateur de langage que vous utilisez génère du code de type sécurisé vérifié, consultez la documentation du compilateur. Si vous utilisez un compilateur de langage qui génère du code de type sécurisé vérifié uniquement lorsque vous évitez certaines constructions de langage, il est possible d'utiliser l'outil PEVerify Tool du Kit de développement logiciel (SDK) Windows pour déterminer si votre code est de type sécurisé vérifié.
Le code qui n'est pas de type sécurisé vérifié peut tenter de s'exécuter si la stratégie de sécurité permet au code de contourner la vérification. Cependant, étant donné que la sécurité de type est une partie essentielle du mécanisme du runtime pour isoler les assemblys, la sécurité ne peut pas être appliquée de manière fiable si du code enfreint les règles de la sécurité de type. Par défaut, du code qui n'est pas de type sécurisé n'est autorisé à s'exécuter que s'il provient de l'ordinateur local. Du code mobile doit donc être de type sécurisé.