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個字符長。

相關問題