Question

Je développe une application ASP .Net MVC. Une de mes actions requiert id en tant que paramètre. Par exemple:

public actionresult Detail(Guid id){
    return View();
}

Comme vous pouvez le constater, j'utilise Guid au lieu de Int . La question est plus esthétique. L'URL peut être très long, tel que localhost / Detail / 0c157b42-379d-41d5-b9ba-83e9df9985b2 .

Est-il prudent de ne prendre que des parties du Guid comme localhost / Detail / 0c157b42 ?

Était-ce utile?

La solution

Le GUID est conçu de manière à être unique, mais aucune de ses parties ne l’est. Voir ce billet de blog pour plus de détails. Si vous devez raccourcir le GUID, prenez un bon hachage - comme SHA-1 ou (si vous n’avez pas de problème de sécurité) MD5.

Autres conseils

Non, ce n'est pas sûr.

Vous pouvez cependant calculer un hachage SHA-2 et en prendre les premiers caractères.

Non, vous avez besoin de l'intégralité du GUID car il est possible qu'un sous-ensemble ne soit pas unique.

Par exemple:

  

0c157b42-379d-41d5-b9ba-83e9df9985b2

     

0c157b42-379d-41d5-b9ba-83e9df9985b3

Notez que seul le dernier numéro est différent. Les débuts sont les mêmes. Vous ne pouvez pas non plus utiliser l'extrémité inférieure du GUID car il est impossible de prédire quelle partie du GUID changera une fois créée.

Quelques autres options à considérer * S'il existe plusieurs détails avec des GUID commençant par 0c157b42, demandez à l'URL localhost / Detail / 0c157b42 d'afficher une liste des objets Details applicables. * Aliasing d'URL - permet une " URL conviviale " champ sur l'objet Détails.

Vous pouvez nettoyer le GUID de -s et convertir l'HEX en Base32 (AZ, 0-5), ce qui le réduira à 16 caractères.

Un peu de réponse tardive, mais au cas où quelqu'un lirait ceci ...

En fonction de l'utilisation, vous pouvez fournir une valeur de GUID abrégée.

Par exemple, si la valeur de l'ID est générée et donnée à l'utilisateur sous forme de valeur de type de jeton d'authentification, vous pouvez, au cours de la génération, prendre le nombre de caractères souhaité et le comparer à d'autres valeurs en cours d'utilisation. le cas échéant, générez-en un nouveau et comparez-le jusqu'à ce qu'il soit unique.

Cette technique est également recommandée si vous ajustez également une valeur de hachage du GUID .. juste pour être sûr. En fait, chaque fois que vous générez de manière aléatoire une valeur à utiliser comme identifiant, vous devez vous assurer qu'elle n'est pas 'déjà utilisée'

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top