Quel environnement Windows utilise-t-il pour vérifier les noms d’utilisateur?

Les noms d’utilisateur sous Windows ne sont pas sensibles à la casse (mais conservent la casse), vous pouvez donc vous connecter en tant que nom d’utilisateur et nom d’ uSERnAME . Toutefois, “case” est différent pour les différents parameters régionaux – quelle langue utilise Windows pour décider que le nom d’utilisateur fourni est identique à celui de la firebase database du compte?

Je crois que c’est le paramètre local invariant, et cela ne dépend de rien dans la boîte de dialog “Options linguistiques et régionales”, mais je peux me tromper. Dans tous les cas, j’apprécierais quelque chose comme un article MSDN pour confirmation (ou réfutation).

Windows utilise l’approche “UpCase et Binary Compare” pour comparer les noms de fichiers (voir Comparaison des noms de fichiers Unicode dans le bon sens et Comparaison des noms de fichiers Win32 ), il y a donc de fortes chances que les noms d’utilisateur suivent les mêmes règles de comparaison dossier font partie du système de fichiers). La comparaison utilisant des parameters régionaux invariants devrait être assez proche, mais je ne suis pas sûr.

Les parameters régionaux de l’utilisateur, les parameters régionaux de l’interface utilisateur, etc. ne sont certainement pas utilisés, car cela ferait dépendre les objects du système opersting des parameters utilisateur.

La langue de l’interface utilisateur est ce qui décide. Voir ce blog MSDN sur les différences . Bien qu’il ne mentionne pas spécifiquement les noms d’utilisateur, il est dit que:

La langue de l’interface utilisateur sous Windows est la langue utilisée par le système pour communiquer avec l’utilisateur.

Cela me dit qu’avant de vous connecter, il s’agit de la langue / parameters régionaux que Windows présente à l’utilisateur. De cette façon, on pourrait taper un nom d’utilisateur en utilisant des caractères sur leur clavier afrikaans ou japonais, tant que la langue de l’interface utilisateur du système est définie sur Afrikaans ou Japonais.

En outre, cet article dit que (sous le fil d’affichage Windows Desktop App Development / arbre)

Le système utilise Unicode exclusivement pour la manipulation de caractères et de chaînes.

Maintenant, cela dit – google me dit (comme vous l’avez mentionné) que la gestion par défaut des noms d’utilisateur par Windows est “sensible à la casse” mais pas “sensible à la casse”, ce qui signifie qu’elle stockera Ne vous en préoccupez pas lors de la vérification des informations d’identification. Active Directory semble également être insensible à la casse.

À partir de cela, j’ai lu qu’il y avait un changement de casse du nom d’utilisateur saisi et enregistré pendant l’authentification, ce qui signifie qu’il devait y avoir une hypothèse de caractères UTF-8 codée en dur si la langue de l’interface utilisateur était définie sur en-US ( et probablement toute langue / locale). Je ne sais pas s’il le ferait pour un environnement local “occidental”; Je n’ai rien trouvé à ce sujet.

Cela dépend de la langue de l’interface utilisateur. Pas sûr des autres, mais l’une des langues les plus problématiques des “cas” est le turc. Parce que toutes les autres langues ont une lettre inférieure “i” avec un point mais en turc, nous avons “ı” aussi bien que “i”. Nous avons aussi des majuscules “I” et “©”. Donc, cela nécessite une spesification elle-même.

En référence à Wikipedia , les noms d’utilisateur sont utilisés avec des variables d’environnement qui ne sont pas sensibles à la casse dans Windows. Mais il est “sensible à la casse” comme l’a dit klugerama.