3

私はasp.netアプリケーションのログインコンポーネントに取り組んでおり、要件の一部は、電子メールアドレスがloginIDとして使用されることです。

「Customer」オブジェクトの場合、LoginIDとEmailAddressプロパティを使用する必要がありますか、それとも単にEmailAddressを使用する必要がありますか?SQLデータベースの場合、LoginIDフィールドが必要ですか、それともEMailAddressフィールドだけが必要ですか?

更新: [プロファイルの編集]ページで、顧客は自分の電子メールアドレスを編集することができます。

私がこれに深く入り込む前に誰かがアドバイスを持っているかどうか興味があります。

4

3 に答える 3

4

メールアドレスを主キーとして使用するか、別の外部顧客IDフィールドを使用するなど、任意の方法で実行できます。

私の個人的な好みは、別のフィールドを使用し、電子メールアドレスをプロパティにすることです。他のフィールドは、GUID、または他の推測しにくいシーケンスのいずれかです。私は2つの理由でこのルートに行きます:

  1. セキュリティの観点から、開発者がURLや非表示フィールドでGUIDをリークするなどのずさんなことをした場合、実際の顧客の電子メールアドレスをリークするよりも(わずかに)被害が少なくなります。
    • 自動化を使用して多数のGUIDを生成し、ユーザーとパスワードの一致を見つけることは、電子メールアドレスのリストを購入して自動化されたエクスプロイトキットにフィードするよりも困難です。
  2. メンテナンスのしやすさ-人々は電子メールアドレスを変更します。メールアドレスを主キーとして使用する場合は、アカウント設定を転送する方法を理解する必要があります。

これが質問で求められていなかったことは知っていますが、あなたは明らかに独自のログインメカニズムを構築しており、必ずしも過度に経験しているとは限らないようです。私が過去に個人的に犯した間違いを避けるのを助けるために、ここにいくつかの良い読み物があります:

http://www.codinghorror.com/blog/2007/09/youre-probably-storing-passwords-incorrectly.html

于 2012-07-16T21:18:33.253 に答える
1

ベストプラクティスは、ログインIDが一意であることを確認することです。メールアドレスは確かに一意ですが、誰かが自分のメールアドレスを変更したい場合は問題が発生する可能性があります。主キーとして電子メールではなく、別のIDを使用することをお勧めします。

電子メールアドレスをプライマリとして使用する場合は、パフォーマンスに関する考慮事項があることにも注意してください。この非常によく似た質問には、いくつかの良い回答があります。主キーとして電子メールアドレスを使用しますか?

于 2012-07-16T21:16:08.360 に答える
1

経験から、行の一意のIDとユーザーのメールのキーの組み合わせを使用することをお勧めします。そして、両方ともプロパティとして使用できます。

于 2012-07-16T21:24:01.960 に答える