個人的には、あいまいなエラー メッセージが苦痛だと思います。私の新しい練習プロジェクトでは、ユーザー入力に追加の検証を追加しようとしています。ただし、ASP.NET MembershipCreateStatusにはメンバーがあります。たとえば、 CreateUserメソッドが使用されたときに、これらの領域の一部を処理する InvalidEmail です。
入力がMembership.CreateUser Methodに到達する前に、送信された電子メールに対して if ステートメントまたは Regex を実行できます。ただし、どこから始めればよいかわかりません。
この質問が少し主観的なものであることは承知していますが、後でもっと良い方法があることを知りたくありません。
システム チェックに加えて、電子メールの特定のフォーマット エラーをチェックする追加の検証メソッドを作成する必要があります。ご覧のとおり、エラー メッセージには無効である理由が示されていません。
また、たとえば、電子メールにアンダースコアが含まれているなど、独自の列挙型を作成して、MembershipCreateStatusに添付することはできますか? もしそうなら、どのように?
これが私のサンプルコードです。
public string GetErrorMessage(MembershipCreateStatus status)
{
switch (status)
{
case MembershipCreateStatus.InvalidEmail:
return "The e-mail address provided is invalid.";
default:
return "Go to jail!!";
}
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
try
{
Membership.CreateUser(txtUserName.Text, txtPassword.Text, txtEmail.Text);
}
catch (MembershipCreateUserException ex)
{
ltrStatusMsg.Text = GetErrorMessage(ex.StatusCode);
}
catch (HttpException ex)
{
ltrStatusMsg.Text = ex.Message;
}
}
ありがとう、友よ。