C# – formule de Luhn

La formule de Lhun permet de vérifier un numéro de carte bleue, un siret, un siren, … tellement utile pour les contrôles de formulaire que je me suis penché sur la question ne trouvant rien de probant sur Internet.

La partie front :

Juste un formulaire pour envoyer le chiffre, rien de bien palpitant 🙂

La partie programmée :

Quelques remarques :

  • Bien penser à ajouter le using regularExpressions qui permet de simplifier grandement les choses avec le Regex. Entre autre je m’en sers pour convertir un string en array de chiffres à 1 digit > « 123 » => [1][2][3], pas trouvé mieux pour la méthode !
  • J’ai coupé le traitement en deux parties que vous visualisiez bien le fonctionnement, cela peut bien entendu être simplifié mais en cas de souci ça permet de vérifier les deux tableaux, le premier avec les digits, le deuxième avec les multiples de deux pour les colonnes impaires sauf pour la première colonne.
  • Par rapport à Wikipedia, il existe un cas particulier par rapport au SIRET de la poste que je n’ai pas traité dans ce cas ! Je verrai avec le temps si j’en ai besoin …

Quelques liens utiles :

https://fr.wikipedia.org/wiki/Formule_de_Luhn

https://portal.hardis-group.com/pages/viewpage.action?pageId=120357227

c# – énumérer un Enum

Bien pratique les enum afin de lier une valeur entière à un texte, ex : 0 = chat, mais comment lister les valeurs ?

Et voilà on retrouve la valeur numérique et textuelle …

IIS7 – security : filtrage par ip

Comment refuser l’accès à votre site à certaines Ip via le web.config ?

Modification du fichier applicationHost.config

Ouvrez le fichier host config :

C:\Windows\System32\inetsrv\config\applicationHost.config

Cherchez la ligne :

et transformez « Deny » en « Allow »

Modification du fichier web.config

Modifiez le fichier web.config de la sorte :

Donc désormais l’ip 217.128.42.22 n’est plus autorisée à accéder à votre site.

NB : attention, le blocage génère maintenant une erreur 403, généralement non définie dans le web.config, donc ajoutez une section pour cette erreur :

ASP.NET 4.0+ Request Validation Error et Web.config Ciblé

Le problème à résoudre concerne la « Request Validation » qui empêche de recevoir certains caractères comme notamment les balises < … >
Il s’agit d’une requête POST qui sera traitée, analysée puis enregistrée via LINQ, les strings seront donc « parameterized ».
Cependant, cela n’est pas le cas de l’ensemble du site nous devons donc appliquer cela à une zone donnée.

  1.  validateRequest= »false »
    ce paramètre permet de supprimer la validation en .NET 2.0
    Il s’insère soit dans la page ciblée :

    soit dans le fichier Web.config :

     
  2. <httpRuntime requestValidationMode= »2.0″ />
    A partir d’ASP.NET 4 ou plus, cet élément du Web.config est indispensable pour que l’annulation du REQUEST VALIDATION soit prise en compte.
    En effet, depuis ASP.NET 4, la validation de la requête se fait plus tôt dans le cycle de vie de la page.

     
  3. « location » : Ciblage d’une page ou d’un répertoire
    La touche finale, il faut impérativement n’affecter que les pages concernées, à cette fin nous utilisons un élement du Web.config qui permet de cibler une location :

     
  4. Le résultat final est celui-ci :

     

Sources :
https://msdn.microsoft.com/en-us/library/hh882339(v=vs.110).aspx
https://msdn.microsoft.com/en-us/library/b6x6shw7(v=vs.100).aspx

 

 

IIS7 – Leverage Browser Caching

Afin de passer à A sous GTmetrix pour la notion de cache des images sous windows il suffit juste d’ajouter le snippet suivant dans le web.config

Ce qui donne un cache de 30 jours, largement suffisant 🙂

Souci de caractères mal encodés

Quand on veut utiliser du texte dans une fonction (style envoyer des mails avec un texte pré enregistré), les caractères se retrouvent mal encodés :

Ex : , l’AŠquipe au lieu de l’équipe.

Pas un souci d’encodage de mail, cherché des heures avec Encoding mais sans succès.
Il suffit juste de ré encoder le texte en UTF8.

 

ASPX – programmer web.sitemap et construire son propre menu

Bonjour,

Après des heures de recherche afin de pouvoir utiliser web.sitemap en mode programmé dans ma master page, je vous livre ici la méthode la plus simple afin de parser le fichier xml :

Tout d’abord le fichier XML web.sitemap

Dans mon cas je ne devais utiliser que url et title, on peut rajouter autant d’infos que vous désirez (description, …)
A savoir, une ligne de titre, ex :

ne doit pas contenir « # » en url par exemple, car si ce même lien se reproduit cela plante, effectivement impossible d’avoir deux liens identiques dans un même fichier de liens.

La partie cs intégrée à ma master page :

Il faut ajouter l’ assembly :

  • System.Xml

Méthode : je lis le premier node parent, et je regarde si il existe des nodes enfants, si oui alors j’affiche tous les enfants.

A savoir, pour checker si une valeur existe utiliser cette méthode :

Prochain cours, génération de web.sitemap et fichier d’indexation google …

MailMessage avec localhost

Méthode très intéressante si jamais le serveur de relais n’est pas joignable. De base tous nos serveurs smtp des machines sont réglés pour relayer les emails via notre serveur de relais, et pour IIS l’envoi de message est donc configuré via localhost.

Le but du jeu est donc de stocker dans un dossier de transit nos emails à envoyer. Si le serveur de relais à un souci, les emails restent stockés et partiront dès que ce dernier sera de nouveau joignable. Voilà, plus possible de perdre l’envoi d’un email dans vos codes !

 

 

Convertir decimal en entier pour les paiements sécurisés

Pour tous les paiements sécurisés on envoie les valeurs sous forme d’entier en centimes , ex :

Voici un petit code qui arrondit le montant à deux chiffres après la virgule et vous rend le résultat sous forme d’entier.

 

IIS Rewrite : SEO rewrite language

Voici comment interpréter une url et la transformer