Sont les noms d'utilisateur toujours sensible à la casse?
Je suis à la recherche d'un code qui convertit les noms d'utilisateur en minuscules, avant de les ranger. Je suis sûr à 90% que c'est ok, mais il y a des systèmes qui ont réellement besoin de la casse sur les noms d'utilisateurs (en particulier dans le secteur de la santé)?
Remarque: mon code n'est pas au point d'entrée. Nous prenons des noms d'utilisateur à partir d'autres systèmes. Le souci que j'ai est en fonction de ces systèmes (qui peut ou ne peut pas être sous notre contrôle) de toujours nous transmettre les noms d'utilisateurs dans le même cas que tous les autres (lors de la description de l'utilisateur même).
Également de noter le code est:
userName.toLowerCase(Locale.ENGLISH)
Sont tous les noms d'utilisateur en anglais? Est-ce juste de sorte qu'il corresponde classement dans la base de données? Il faut noter que, dans java au moins) String.toLowerCase()
est défini comme String.toLowerCase(Locale.getDefault())
OriginalL'auteur Stephen | 2009-02-12
Vous devez vous connecter pour publier un commentaire.
unix connexions sont sensibles à la casse...
Existe-il d'autres systèmes que faire?
La haine lecteur-par le bas-voix. Malheureusement, ils arrivent.
Eh bien, ce qui répond exactement à ce qui était demandé. Il rappelle d'un cas où les noms d'utilisateur sont sensibles à la casse. Je upvoted.
existe-il d'autres systèmes que faire? Oui, bien sûr, par exemple, Wikipédia les noms d'utilisateur sont sensibles à la casse.
OriginalL'auteur Stephen
toLowerCase a qu'une seule raison pour qu'il accepte un jeu de paramètres régionaux:
depuis petite lettre que j'ai a un point dans chaque langue standard, la lettre I est transformé en i avec un point.
mais en turc, il y a aussi une lettre majuscule I avec un point au-dessus. ce est transformé en une petite lettre que j'ai.
la "régulière" capitale turque I est transformé à un petit ı - sans dot.
donc, sauf si votre turc noms d'utilisateurs sont tous appelés IiI1I1iiII, j'aurais peine à vous inquiéter à ce sujet.
toute autre langue que le turc a un identique toLowerCaseImplementation. vous pourriez donc choisi de paramètres Régionaux.ANGLAIS ou Locale.ALLEMAND ou quoi..assurez-vous de ne pas choisir le turc.
voir le javadoc pour plus d'informations détaillées
edit: merci à utku karatas je pourrais copier/coller le bon glyphes dans ce post.
Aucun turc clavier Andreas? 🙂 Permettez-moi d'illustrer la question... inférieur("I") = "i", inférieur("je") -> "je".
Et btw, Jeff a un long post sur ce problème.. codinghorror.com/blog/archives/001075.html
Je tiens à souligner que c'est pas seulement la langue turque qui a un autre
toLocaleLowerCase
mise en œuvre. Actuellement, il y a 3 langues avec des règles différentes, à savoir le lituanien, turc et Azéri. SourceOriginalL'auteur Andreas Petersson
À l'aide de la casse du nom d'utilisateur/mots de passe est un moyen facile d'augmenter la sécurité, donc la question est, combien vous vous souciez de la sécurité vs facilité d'utilisation. Il suffit de garder à l'esprit que la façon dont vous êtes à la recherche à résoudre le cas de l'insensibilité peut avoir de problèmes de localisation, mais si vous n'aimez pas, alors ne vous inquiétez pas à ce sujet.
OriginalL'auteur Bob The Janitor
Mettre en minuscule le nom d'utilisateur en utilisant les paramètres régionaux anglais est lié à vous causer des problèmes. Je suggère la mise en minuscules à l'aide de l'invariant de la culture.
L'Invariant de la culture .NET est paramètres régionaux anglais de toute façon.
c'est une mise en œuvre interne de détail que vous ne devriez pas compter sur.
OriginalL'auteur Franci Penov
Il dépend du contexte, mais dans le Informix langage SQL, il y a des "propriétaires" (en gros l'équivalent d'un schéma dans le standard SQL), et de la façon dont vous écrivez le nom du propriétaire questions.
Les deux cités les noms sont certainement différentes, les deux " noms sont mappées à la même nom, qui (selon le mode de base de données) pourrait être l'un des deux autres. Il y a un peu de code autour de ce qui n'cas de conversion sur les (non cotées) les noms. Heureusement, la plupart du temps, vous n'avez pas besoin de spécifier le nom, et quand vous ne vous en écrire le nom sans les guillemets et tout fonctionne; ou vous écrivez le nom de guillemets et sont compatibles et tout cela fonctionne. Parfois, cependant, les gens comme moi ont à vraiment comprendre les détails pour obtenir des programmes de travail sainement, en dépit de tous les cercles.
Aussi, (comme Stephen noté) Unix connexions sont sensibles à la casse, et l'ont toujours été. Je crois que les ouvertures de session Windows sont pour la plupart de la casse, mais je ne suis pas d'expérience avec qui (il y a beaucoup de façons de se faire défoncer sur Windows sans l'ajout de ce genre de tricherie au jeu).
Si vous voulez vraiment confondre quelqu'un sur Unix, de leur donner un numérique nom d'utilisateur (p. 123), mais de leur donner un autre UID (p. 234).
OriginalL'auteur Jonathan Leffler
Kerberos, qui peut être utilisé dans des environnements Windows aussi, a cas de problème de sensibilité. Vous pouvez le configurer dans une certaine façon de s'assurer que la sensibilité à la casse de questions ne se pose pas, mais ça peut aller dans l'autre sens aussi.
OriginalL'auteur Daniel C. Sobral
Si votre seul but est de différencier un utilisateur à partir d'un autre, il semble logique que vous voulez plus de cas d'être un facteur.
OriginalL'auteur BC.
Je n'ai jamais rencontré un système qui a appliqué la casse sur les noms d'utilisateur (et je veux).
Probablement le code oblige minuscules au point d'entrée comme une tentative pour éviter la casse des problèmes plus tard.
Wikipedia usernames are case sensitive, but the first letter is always automatically capitalized
prises à partir de en.wikipedia.org/wiki/Wikipedia:Username_policyAlors que Wikimedia / Wikipedia / MediaWiki noms d'utilisateurs sont sensibles à la casse, le logiciel empêche les deux noms d'utilisateur qui ne diffèrent que par la capitalisation.
OriginalL'auteur Andrew Grant