gpt4 book ai didi

django - 标准 Django 登录身份验证不应该区分大小写吗?

转载 作者:行者123 更新时间:2023-12-04 04:57:36 24 4
gpt4 key购买 nike

我正在开发 Django Web 界面。根据我阅读的所有内容,我们正在使用的标准 Django 身份验证应该区分大小写,因此 userid、UserId 和 USERID 是三个独立的用户名。

在我的 Windows 7 机器上,正如预期的那样,用户注册过程和登录身份验证都区分大小写,但是当相同的代码移植到我们的 Linux 服务器时,用户注册过程和登录身份验证都变得不区分大小写,因此用户 ID和 USERID 被认为是相同的。

现在,由于注册和认证过程都发生了变化,我们团队担心注册用户被其他注册用户隐藏的担忧已经得到缓解,但我仍然担心我们 Linux 服务器上的 Django 功能与文档相反。

我们的 global_settings.py 包含:

    AUTHENTICATION_BACKENDS = ('django.contrib.auth.backends.ModelBackend',)

和 settings.py 包括:
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
' django.contrib.staticfiles',

我在两台机器中看到的唯一区别是:
             case sensitive   case-insensitive
========= ======
OS Windows Linux
database SqLite MySQL
Django ver. 1.4.5 1.4.? / 1.5

谁能解释行为上的差异并告诉我是否有任何需要注意的副作用?谢谢!

最佳答案

这与 Windows 与 Linux 无关,或者根本与 Django 无关。这与您如何设置数据库有关:在您的服务器上,您使用的是 MySQL,并且您可能已将其配置为使用不区分大小写的排序规则(可能是 latin1_swedish_ci 或 utf8_general_ci)。如果您需要区分大小写,请使用 bin排序规则,例如 utf8_bin。见 MySQL charset/collation docs .

关于django - 标准 Django 登录身份验证不应该区分大小写吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16574300/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com