1

虽然没有记录为 MSDN 上CreateUser方法的一部分,但如果您尝试使用包含逗号的用户名(包括尝试创建用户)执行任何操作,SqlMembershipProvider 会引发 ArgumentException。密码中的逗号似乎没问题。我的问题是为什么?

System.ArgumentException: The parameter 'username' must not contain commas.

编辑:正如在stackoverflow上记录的那样,允许使用逗号的一个原因是,虽然不寻常,但电子邮件地址可以包含逗号。

4

1 回答 1

1

我敢打赌,密码是散列的,而用户名不是。但是,我对此没有备份。想象一下,您想将用户输入连接成一个字符串,并且几个字段用逗号分隔。对你来说,仅仅限制逗号而不是找到一种荒谬的方式来逃避和/或在字符串中间编码一个逗号不是更容易吗?

编辑:实际上,在UpdateUser方法中,记录了用户名不能包含逗号。然而,他们仍然没有解释为什么会有限制。这来自关于何时引发 ArgumentException 的部分:

user 的 UserName 属性为空字符串 ("")、包含逗号或长度超过 256 个字符。

于 2012-04-02T12:31:00.743 回答