1

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

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

編集:コンマはしばらく珍しい、電子メールアドレスCANにカンマが含まれている、ということでしょう可能にするためのそのような理由は、stackoverflowに文書化されたよう。

+2

"ユーザー名にカンマを使用する理由は何ですか?" – jrummell

+0

特に理由はありません。私は他の句読点が許されているのが好奇妙だと思っています。コンマを許可すると、私が気づくべきである種のセキュリティ上のリスクが生じますか? – Brandon

+0

私が知っているセキュリティ上の問題はありません。その非常に奇妙な要件。 – jrummell

答えて

1

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

EDIT:実際には、UpdateUserメソッドでは、ユーザー名にコンマを使用できないことが記載されています。しかし、彼らはまだ制限がある理由を説明していません。これは、ArgumentExceptionがスローされたときには、上のセクションからです:ユーザーのUserNameプロパティは空の文字列(「」)である

、 カンマが含まれているか、256文字を超えています。

関連する問題