2017-05-26 115 views
1

比方說,我有一個數字密碼字段,基本上是一個PIN:ASP.NET核心,驗證數字密碼

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

,然後嘗試提交一個字母的密碼,那麼驗證將失敗的服務器上(如預期的那樣),但向用戶顯示The value 'foo' is not valid for Password.

有什麼辦法可以避免顯示嘗試密碼?或者我在想這個錯誤?

我可以讓字段成爲一個字符串,然後驗證它,但我不確定我喜歡那個解決方案,並且希望有其他東西可以忽略。

+0

'我可以讓字段成爲一個字符串並驗證它'< - 我喜歡它。你能否詳細說明你爲什麼不這樣做?對我來說,似乎在建立的數據valiation不*完全*你想要什麼,所以你必須自己編碼的東西 - 完全可以接受的。還給出了密碼*不可接受您在顯示時遇到了什麼問題? – 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