1

MSDN のCreateUserメソッドの一部として文書化されていませんが、コンマを含むユーザー名で何かをしようとすると (ユーザーの作成を含む)、SqlMembershipProvider は ArgumentException をスローします。パスワードのコンマは問題ないようです。私の質問はなぜですか?

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

編集: stackoverflowで文書化されているように、コンマを許可する理由の 1 つは、珍しいことですが、電子メール アドレスにコンマを含めることができることです。

4

1 に答える 1

1

私の賭けは、パスワードがハッシュされ、ユーザー名がハッシュされていないことです。ただし、これに関するバックアップはありません。ユーザー入力を連結して文字列にし、複数のフィールドをカンマで区切ったと想像してみてください。文字列の途中でコンマをエスケープおよび/またはエンコードするばかげた方法を見つけるよりも、コンマを制限する方が簡単ではないでしょうか?

編集: 実際には、UpdateUserメソッドでは、ユーザー名にコンマを含めることはできないことが文書化されています。ただし、制限がある理由についてはまだ説明されていません。これは、ArgumentException がスローされた場合のセクションからのものです。

user の UserName プロパティが空の文字列 ("") であるか、カンマが含まれているか、256 文字を超えています。

于 2012-04-02T12:31:00.743 に答える