.netメンバーシップにはどのような選択肢もありますか?.Netメンバーシップの代わり
非常に限定的です。
簡単に変更できます。ユーザー名は、簡単です。新しいユーザーを作成してフィールドをコピーする必要がありますが、プライマリキーを失うか、自分でユーザーテーブルを直接編集する必要があります。
追加のプロファイルフィールドは、1つのブロブとしてまとめて格納されます。
.netメンバーシップにはどのような選択肢もありますか?.Netメンバーシップの代わり
非常に限定的です。
簡単に変更できます。ユーザー名は、簡単です。新しいユーザーを作成してフィールドをコピーする必要がありますが、プライマリキーを失うか、自分でユーザーテーブルを直接編集する必要があります。
追加のプロファイルフィールドは、1つのブロブとしてまとめて格納されます。
ASP.Netのメンバシップはプロバイダモデルを使用します。つまり、provider contractに従う限り、あなたは自分のメンバーシッププロバイダを完全に実装することができ、既存のプロバイダを継承して拡張することもできます。
さらに、自分で新しいものを作成しようとするのではなく、既存の選択肢について質問するためのものです。
ユーザー名を変更する限り、CreateNewUser()メソッドを使用して現在のユーザーに基づいて適切なフィールドを入力し、現在のユーザーを削除することで簡単に達成できます。
プロファイルフィールドは、.NETメンバーシッププロバイダモデルの一部ではなく、プロファイルプロバイダの一部です。これは非常に議論されている話題であり、ほとんどのプロダクションマシンで正しい方法は、このようなより良いプロファイルプロバイダソリューションをドロップインすることです(Table Profile Providerなど)。これは、メモリホッピングブロブではなく、期待通りにプロファイルフィールドを格納します。また、独自のプロファイルプロバイダを簡単にロールすることもできます。instructions hereをチェックしてください。
確かに.NETメンバーシップの選択肢がありますが、ほとんどがバグであるか、小さなフィーチャセットを持っています。それは2ヶ月間、1つ上に開発して、それが必要なすべての機能をサポートしないことを実感します。 .NETメンバーシップは実証済みのソリューションであり、そのために頻繁に使用されています。
プロフィールについては、alternatives out thereの2つがあります。これらの2つは、テーブルを使用するか、ストアドプロシージャを呼び出すことができます。もちろん、自分で実装することもできます。私は個人的にプロファイルプロバイダーを使用するのに飽きてしまい、自分のコード内のプロファイルを扱うのが制御しやすく、含まれていることが分かりました。
その他の問題については、独自のプロバイダを実装することもできます。マイクロソフトはソースコードをSQLプロバイダにリリースしたので、出発点を与えることができます。
プロファイルプロバイダモデルを使用しなかった理由を説明してください。 – kseen
ASP.NETメンバーシップモデルはプロバイダの周りに構築されているため、いくつかの選択肢があります。
デフォルトでは、ユーザーはGUIDであり、データベースのプライマリキーであるため、必要に応じてユーザー名を変更するための何かを書くことができるはずです。
プロファイルの面では、はい、デフォルトのBLOBはかなり面倒です。プロファイルをテーブルにマップするSQL Table Profile Providerを見るか、またはかなり早くroll your ownを見ることができます。
@Dan - UserIDによって、私はデータベーステーブルaspnet_Membershipとaspnet_usersのPKを参照していましたが、実際にはUserIdと呼ばれています –
ここで私の選択肢を列挙します。私は自分自身の認証ライブラリをロールバックしました。公開されるほど素晴らしいと思います...だから私はしました。それはあなたのやり方と全体的にとどまるように設計されていますが、それはかなりミニマルです。私は箱入りのユーザーコントロールをたくさん提供していませんが、それらの組み込みユーザーコントロールを見たことのあるほとんどのWebサイトでは決して使用されていません。だから、より柔軟なユーザーコントロールを作成するのではなく、自分のログインコントロールなどを簡単に作成することを決めました。
このプロジェクトは、高速で安全で簡潔な認証、つまりFSCAuthと呼ばれています。それはBSDライセンスです。 BinpressまたはBitbucket
柔軟な「UserStore」モデル(フォームのプロバイダに相当)を使用すれば、必要に応じてデータベースを作成できます。プレーンテキストファイル(XML、MongoDB、Sql Serverなど)をサポートしています。
は、ここで私はそれが特にフォーム認証の上に優れ考えるもののリストです。データベースまたはメモリのいずれかでユーザーセッションを追跡する必要はありません。これにより、複数のサーバーにスケールアップするのが簡単になります(ある場合)認証コードを変更する必要はほとんどありません
それも欠けている、と私は静的ファイルの認証
新しいユーザーを作成した場合、それはまた、右、それのために新しいIDが生成されますか?ユーザーが既に他のテーブルによって参照されている場合は不都合です。 – XOR
いいえ、あなたのメソッドを修正してユーザ名を "変更"するのは簡単です。 – JoshJordan