2017-05-26 10 views
1

はPIN、本質的に、のは、私は数字のパスワードフィールドを持っているとしましょう:その後、ASP.NETコア、数字のパスワードを検証

[DataType(DataType.Password)] 
public int Password { get; set; } 

とアルファベットのパスワードを送信しようとすると、その後の検証は、サーバー上で失敗します(予想どおり)、ユーザーにThe value 'foo' is not valid for Password.と表示されます。

試行されたパスワードの表示を避ける方法はありますか?それとも、私はこの間違いを考えていますか?

私はそのフィールドを文字列にして、それ以外の場合はそれを検証することができますが、私はその解決策が気に入らないと私は見落としているものがあることを望んでいました。

+0

'私はフィールドを文字列にして、それを検証することができます。 ' - 私はそれが好きです。なぜあなたはしないのですか?それはビルドされたデータの釣り合いのように見える*正確に*あなたが何かを自分でコーディングする必要があるので、完全に受け入れられる。また、パスワード*を受け入れることはできません*それを表示する上であなたの問題は何ですか? – wal

+0

例外をキャッチして処理しようとしましたか? –

+1

私はいつもユーザー入力を文字列として扱います。バックエンドにIntegerが必要な場合は、それを解析することができます。 btb、数字の文字を有効なPW文字として選択するだけでは、そのPWをとにかく強要するのがずっと簡単になるでしょう。 – Christopher

答えて

1

DataType属性を使用するとカスタムエラーメッセージが表示されることがあります。

[DataType(DataType.Password, ErrorMessage = "Your password must be a integer.")] 

このhereに関するドキュメントを参照してください。

他の人もコメントの中で言及しているように、intを使用することは、ここでは最良の方法ではないかもしれません。

+0

しかし、これを動作させるのに問題があります。検証エラーがDataType属性にないため、エラーメッセージには影響しません – Desjardins

関連する問題