在.NET Web MVC 4应用程序中实现多步数据验证的最佳实践是什么? 第1步
<input type="email" name="email"/>
在控制器中,我使用RegExp检查电子邮件的有效性并重定向到第2步
第2步
<input type="hidden" name="email"/>
<input type="password" name="pwd"/>
<input type="password" name="confirmpwd"/>
在控制器中,我检查密码的有效性并创建用户
如果有人更改隐藏的输入中的电子邮件,则可以使用无效的电子邮件注册帐户。 所以我可以在会话中保存电子邮件? 或者我应该使用双向加密电子邮件加密并将其传递给隐藏的表单? 重新验证电子邮件?在大量数据的情况下? 哪种是最佳做法?
答案 0 :(得分:2)
严格来说,从最佳实践角度来看,您不能依赖于使用输入,其中包括隐藏的表单字段。您可以将电子邮件存储在会话中,但是如果服务器崩溃,或者服务器位于服务器场中,这会产生影响吗?我建议将电子邮件存储在事务数据库中,以便稍后检索。
就验证而言,如果您对密码强度有最低要求,则应在视图模型上使用正则表达式数据注释以获取电子邮件。您还可以使用数据注释来验证确认密码是否与密码匹配。最后检查控制器上的Model.IsValid以获得最佳结果。