2017-05-26 67 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