Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Web applications 为什么有区分大小写的用户名?_Web Applications_Login_User Experience - Fatal编程技术网

Web applications 为什么有区分大小写的用户名?

Web applications 为什么有区分大小写的用户名?,web-applications,login,user-experience,Web Applications,Login,User Experience,遗憾的是,我每天不得不使用的系统都有大写的区分大小写的用户名。也就是说,您的用户名类似于SMITHJ,如果您尝试使用SMITHJ或SMITHJ或除SMITHJ以外的任何其他软件登录,则不会被接受。这是最烦人的,因为该组织使用的六个其他系统没有区分大小写的用户名 您需要区分大小写的用户名有什么原因吗?这些帐户都是为我们生成的,因此没有重复名称的风险(无论如何,这是一个需要处理的小问题) 我只是好奇,但如果有人能解释为什么系统会以这种方式构建,我将不胜感激。我现在唯一的理论是一个真正懒散地实现的字符

遗憾的是,我每天不得不使用的系统都有大写的区分大小写的用户名。也就是说,您的用户名类似于SMITHJ,如果您尝试使用SMITHJ或SMITHJ或除SMITHJ以外的任何其他软件登录,则不会被接受。这是最烦人的,因为该组织使用的六个其他系统没有区分大小写的用户名

您需要区分大小写的用户名有什么原因吗?这些帐户都是为我们生成的,因此没有重复名称的风险(无论如何,这是一个需要处理的小问题)


我只是好奇,但如果有人能解释为什么系统会以这种方式构建,我将不胜感激。我现在唯一的理论是一个真正懒散地实现的字符串比较。

许多系统,至少是内部系统,但希望不是internet上的一般驾车网站,在该系统中设置时也会创建系统用户或数据库用户或类似的东西。而本机系统(例如*nix机器上的用户)是区分大小写的,因此web应用程序必须遵循这一点

或者,系统可能会将身份验证推迟到另一个服务(例如radius服务器),该服务出于任何原因被设置为区分大小写


然而,大多数情况下,就像饼干314在他的评论中所说的那样,懒散和非设计-但请注意,一旦你处理非ascii语言环境,不区分大小写可能会非常复杂。

许多系统,至少是内部系统,但希望不是你在互联网上的一般免下车网站,在系统中设置时,创建系统用户、数据库用户或类似的内容。而本机系统(例如*nix机器上的用户)是区分大小写的,因此web应用程序必须遵循这一点

或者,系统可能会将身份验证推迟到另一个服务(例如radius服务器),该服务出于任何原因被设置为区分大小写


然而,大多数情况下,正如饼干314在其评论中所说的那样,懒散和非设计-但请注意,一旦处理非ascii语言环境,不区分大小写可能会非常复杂。

几乎可以肯定,这是默认设计,而不是意图-换句话说,是惰性实现的字符串比较。作为一般规则,假设不同的字符相同会增加复杂性和边缘情况。特别是当文化和字母表的差异可能改变这些规则时。@DrewDormann不同的字母表是一个有效的观点,但据我所知,我们的系统只是英语字符。不过我没有考虑过,所以谢谢。我最初的想法是,你可以存储用户名,不管他们怎么键入(在本例中,他们没有,但不管怎样…),然后像user.downcase==user.downcase那样进行比较。但正如@DrewDormann所说的,你可能会在使用非标准字符时遇到奇怪的情况。在我们的例子中,我们的帐户是为我们创建的,因此他们可以只使用安全字符,这一事实缓解了这个问题。几乎可以肯定,这是默认设计,而不是故意的——换句话说,是延迟实现的字符串比较。作为一般规则,假设不同的字符相同,会增加复杂性和边缘情况。特别是当文化和字母表的差异可能改变这些规则时。@DrewDormann不同的字母表是一个有效的观点,但据我所知,我们的系统只是英语字符。不过我没有考虑过,所以谢谢。我最初的想法是,你可以存储用户名,不管他们怎么键入(在本例中,他们没有,但不管怎样…),然后像user.downcase==user.downcase那样进行比较。但正如@DrewDormann所说的,你可能会在使用非标准字符时遇到奇怪的情况。在我们的例子中,我们的帐户是为我们创建的,因此他们可以只使用安全字符,这一事实缓解了这个问题。