我正在开发我的 asp.net 应用程序的登录组件,部分要求是将电子邮件地址用作登录 ID。
对于我的“客户”对象,我应该有一个 LoginID 和一个 EmailAddress 属性还是只有 EmailAddress?对于 SQL 数据库,我需要一个 LoginID 字段还是只需要一个 EMailAddress 字段?
更新:在“编辑个人资料”页面中,客户可以编辑他们的电子邮件地址。
好奇在我深入研究之前是否有人有建议。
我正在开发我的 asp.net 应用程序的登录组件,部分要求是将电子邮件地址用作登录 ID。
对于我的“客户”对象,我应该有一个 LoginID 和一个 EmailAddress 属性还是只有 EmailAddress?对于 SQL 数据库,我需要一个 LoginID 字段还是只需要一个 EMailAddress 字段?
更新:在“编辑个人资料”页面中,客户可以编辑他们的电子邮件地址。
好奇在我深入研究之前是否有人有建议。
您可以按照自己的方式进行操作 - 使用电子邮件地址作为主键,或使用另一个外部客户 ID 字段。
我个人的偏好是使用另一个字段,并将电子邮件地址作为属性。另一个字段可能是一个 guid,或者是一些其他难以猜测的序列。我会走这条路有两个原因:
我知道问题中没有要求这样做,但是您显然是在构建自己的登录机制,听起来您可能不一定经验丰富。为了帮助您避免我个人过去犯过的错误,这里有一些很好的阅读材料:
http://www.codinghorror.com/blog/2007/09/youre-probably-storing-passwords-incorrectly.html
根据经验,我建议您在行的唯一 ID 和用户邮件之间使用组合键。并且您都可以将它们用作属性。
最佳做法是确保登录 ID 是唯一的。电子邮件地址确实是独一无二的,但如果有人希望更改他们的电子邮件地址,您可能会遇到问题。我建议使用单独的 ID 而不是电子邮件作为主键。
另请注意,使用电子邮件地址作为主要地址时,有一些性能注意事项。在这个非常相似的问题中有一些很好的回答:使用电子邮件地址作为主键?.