.net メンバーシップに代わるものはありますか?
私はそれが非常に制限的だと思います。
ユーザー名を簡単に変更できません。新しいユーザーを作成してフィールドをコピーする必要がありますが、主キーを失うか、ユーザー テーブルを自分で直接編集する必要があります。
追加のプロファイル フィールドは、1 つの BLOB としてまとめて保存されます。
.net メンバーシップに代わるものはありますか?
私はそれが非常に制限的だと思います。
ユーザー名を簡単に変更できません。新しいユーザーを作成してフィールドをコピーする必要がありますが、主キーを失うか、ユーザー テーブルを自分で直接編集する必要があります。
追加のプロファイル フィールドは、1 つの BLOB としてまとめて保存されます。
ASP.Net メンバーシップはプロバイダー モデルを使用します。つまり、プロバイダー コントラクトに従う限り、完全に自由に独自のメンバーシップ プロバイダーを実装したり、既存のプロバイダーを継承して拡張したりできます。
ただし、新しいものを自分で構築しようとするのではなく、既存の代替案について尋ねるためのプラス 1 つです。
先に進み、ここに私の代替案をリストします。私は独自の認証ライブラリを作成しましたが、公開するには十分素晴らしいと思います...だから私はそうしました。邪魔にならないように設計されており、全体的にかなりミニマルです。すぐに使用できるユーザー コントロールはあまり提供していませんが、ほとんどの Web サイトでは、組み込みのユーザー コントロールが使用されていません。そのため、さらに柔軟なユーザー コントロールを作成しようとする代わりに、独自のログイン コントロールなどを作成するのを非常に簡単にすることにしました。
このプロジェクトは、Fast, Secure, and Concise Authentication (略して FSCAuth) と呼ばれています。BSDライセンスです。BinpressまたはBitbucketでダウンロードできます。
柔軟な「ユーザー ストア」モデル (フォームのプロバイダーに相当するもの) により、必要に応じてデータベースを作成できます。プレーン テキスト ファイル、XML、MongoDB、Sql Server、およびその間のあらゆるファイルをサポートできます。
以下は、フォーム認証よりも優れていると私が思う点のリストです。
もちろん足りないものもあるし、公平を期すために、いくつかの欠けているものを含めます
ASP.NET メンバーシップ モデルはプロバイダーを中心に構築されているため、多数の代替手段を利用できます。
デフォルトでは、ユーザーには GUID である ProviderUserKey があり、これがデータベースのプライマリ キーであるため、必要に応じてユーザー名を変更するために何かを記述できるはずです。
プロファイルに関しては、はい、デフォルトのブロブはかなり面倒です. プロファイルをテーブルにマップするSQL テーブル プロファイル プロバイダーを調べるか、独自の.
ユーザー名の変更に関しては、CreateNewUser() メソッドを使用し、現在のユーザーに基づいて適切なフィールドに入力し、現在のユーザーを削除することで簡単に実行できます。
プロファイル フィールドは、.NET メンバーシップ プロバイダー モデルの一部ではなく、プロファイル プロバイダーの一部です。これは非常に議論の多いトピックであり、ほとんどの実稼働マシンの正しい方法は、このTable Profile Providerなどのより優れたプロファイル プロバイダー ソリューションをドロップインすることです。これは、メモリとしてではなく、期待どおりにプロファイル フィールドを格納します-ホギングブロブ。または、独自のプロファイル プロバイダーを簡単に展開することもできます。こちらの手順を確認してください。
確かに .NET メンバーシップの代替手段はありますが、ほとんどはバグがあるか、機能セットが小さいです。1 つの上で 2 か月間開発した後、必要なすべての機能がサポートされていないことに気付くのは本当に最悪です。.NET メンバーシップは実績のあるソリューションであり、それが頻繁に使用される理由です。
プロファイルに関しては、いくつかの選択肢があります。これら 2 つは、テーブルを使用するか、ストアド プロシージャを呼び出すことができます。もちろん、独自に実装することもできます。私は個人的にプロファイル プロバイダーの使用にうんざりしており、コード内でプロファイルを処理する方が制御と包含が容易であることに気付きました。
他の問題については、独自のプロバイダーを実装することもできます。Microsoft はソース コードを SQL プロバイダーにリリースしたので、開始点を提供できます。