Asp.net mvc 4 奇怪的MVC/简单成员身份日志记录不区分大小写的用户名

Asp.net mvc 4 奇怪的MVC/简单成员身份日志记录不区分大小写的用户名,asp.net-mvc-4,simplemembership,Asp.net Mvc 4,Simplemembership,我在测试MVC SimpleMembership用户配置文件时注意到了这种行为 我在VS2012中创建了一个带有互联网设置的新MVC项目。负责这个项目。通过在用户名“用户名”和密码“Somepassword”下注册创建了一个新用户。然后注销。再次登录,但使用用户名“用户名”和“Somepassword”。如果您注意到我已将用户名字母改为小写的“U”和“N”。我尝试了组合,在每种情况下,应用程序都以“用户名”的身份将我作为成员登录,尽管在部分登录中显示了“用户名”(以及其他组合)。我有点担心MVC

我在测试MVC SimpleMembership用户配置文件时注意到了这种行为

我在VS2012中创建了一个带有互联网设置的新MVC项目。负责这个项目。通过在用户名
“用户名”
和密码
“Somepassword”
下注册创建了一个新用户。然后注销。再次登录,但使用用户名
“用户名”
“Somepassword”
。如果您注意到
我已将用户名字母改为小写的“U”和“N”
。我尝试了组合,在每种情况下,应用程序都以“用户名”的身份将我作为成员登录,尽管在部分登录中显示了“用户名”(以及其他组合)。我有点担心MVC应用程序的安全性。有人能解释为什么在MVC4 Asp网络中有这种行为吗

我有点担心MVC应用程序的安全性 解释为什么在MVC4 Asp网络中有简单成员身份时会出现这种行为

不,别担心。UserName不区分大小写,因为密码区分大小写。这是互联网上所有主要网站的工作方式。我的意思是,如果你对安全有一些担忧,就拿谷歌为例。你可以混合任何你想到的用户名大小写。这是一个完全区分大小写的密码,它应该是这样的


当然,现在如果出于某种奇怪的原因,你希望用户名区分大小写(你到底为什么要这样做?)通过编写您自己的并实现特定案例所需的任何规则,您可以随意覆盖默认的简单成员资格提供程序。

我猜用户名的唯一性是不区分大小写的。@David这是显而易见的。是的,这是显而易见的,我不明白您为什么要关注显而易见的事情。我是说你的问题到底是什么?很明显,用户名不区分大小写。密码区分大小写。这是它应该是的方式,这是它的方式。如果其他人认为明显不符合您的特定业务规则,请随意编写您自己的会员资格提供商实现。我不想在应用程序中使用区分大小写的功能。我想我知道会员制是如何运作的。但这让我想回去重新开始学习。好吧,如果明显的不符合你的业务需求,你总是有可能推出自己的定制会员提供商。但我绝对不认为用户名的大小写不敏感会让您对简单成员资格提供者的默认实现产生任何安全顾虑。这是很自然的事情,也是当今互联网上所有主要网站的工作方式。