1

尽管不是记录为MSDN上的CreateUser方法的一部分,但如果您尝试对包含逗号(包括尝试创建用户)的用户名执行任何操作,SqlMembershipProvider将抛出ArgumentException。逗号在密码中似乎没有问题。我的问题是为什么?为什么在使用SqlMembershipProvider时用户名中不允许使用逗号?

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

编辑:作为在案stackoverflow,一个这样的理由让逗号是,虽然不寻常,电子邮件地址CAN包含逗号。

+2

也许更好的问题是“为什么你要在用户名中使用逗号?”。 – jrummell 2012-04-02 12:28:22

+0

没有特别的理由。我只是觉得好奇,其他标点符号是允许的。是否允许逗号提供我应该注意的某种安全风险? – Brandon 2012-04-02 12:30:36

+0

我知道没有安全问题;它只是一个非常奇怪的要求。 – jrummell 2012-04-02 12:32:23

回答

1

我敢打赌,密码被散列,用户名不是。不过,我没有备份。试想一下,您想将用户输入连接成一个字符串,并且多个字段用逗号分隔。对于逗号逗留而言,不是找到一种可笑的方式来逃避和/或编码逗号中间的字符串吗?

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

用户名属性是空字符串(“”),包含一个 逗号,或超过256个字符长。

相关问题