2012-07-30 61 views
2

我正在创建一个简单的注册表单,我想知道是否有人可以给我一些最佳实践列表。我知道注册表单之间可能有所不同,但可能需要提供一些指导方针或注意类似漏洞的内容。我的数据访问层将使用Entity FrameWork和linq来处理查询。MVC3注册表格最佳实践

实践,我会觉得有道理:

  • 验证表单当模型绑定到业务对象
  • 服务器端验证和客户端验证(最新最好的方式做到这一点?)
  • 检查SQL注入?我的帐户管理器对象(?对此有何最佳做法)
  • 使用依赖注入

我的注册字段将是以下几点:

  • 电子邮件(必须是一封电子邮件,必须是来自几个网站的电子邮件,即@ gmail.com,@ yahoo.com,@ live.com)
  • 学校
  • 密码
  • 状态(静止下降3个左右选择向下)

我也很喜欢电子邮件激活,以及当用户将不得不去他或她的电子邮件,以便使他们的账户活性。

回答

2
  • 使用System.ComponentModel.DataAnnotations namesapce for 验证您的视图模型。
  • 是的,做服务器和客户端验证
  • 实体框架已经处理了SQL注入
  • 考虑使用“验证码”,如果你担心垃圾邮件机器人的 表单提交

对于电子邮件部分:

在过去,我创建了一个数据库表,它将电子邮件映射到随机生成的字符串。当您发送完整的注册电子邮件,提供使用该随机字符串或GUID或任何一个链接:

mydomain/completeregistration/7593098573903 whatever

现在,一旦客户遵循链接,您处理该请求,纪念他们登记为已完成在数据库中。 (这也应该具有防止对该URL的后续请求的效果)

2

使用客户端和Serverside验证。 永远不要信任客户端验证

使用DataAnnotations和jQuery验证插件。您不需要编写客户端验证功能。当您使用HTML Helper方法呈现HTML元素时,MVC会执行此操作。

Entity Framwork将构建参数化查询。所以你不需要担心SQL注入。但是,如果您正在使用实体框架手动执行SQL语句/存储过程,则您有责任对其进行参数化。