ASP.NETメンバーシッププロバイダーのチャレンジ質問に完全に適合しない検証手法を使用するカスタムパスワードリセットアプリケーションを作成しています。
つまり、ユーザーがカスタムフォームを使用してログインした後、ワークフローを呼び出し、エンドユーザーから情報(バックアップ電話番号、電子メールアドレス)を収集する必要があります。
Cookieベースのセッションを作成するために知っている唯一の方法(あまり「革新」を行わずに)は、WIFを使用することです。
理想的には、「admin」、「departmentXadmin」、「normalUser」、「restrictedUser」などのセッションオブジェクトに「ロール」またはクレーム情報を格納できます。
ワークフローは次のようになります。
「パスワードを忘れた」は次のようになります
まず、4.5でリリースされた改善されたメンバーシップビットを確認してください。古い不気味な構造よりも、カスタムオプションを実装する方が簡単なはずです。
どちらの場合でも、「メンバーシッププロバイダーに主要な認証を処理させ、独自のデータベースを使用して拡張機能を処理させる」という非常に効果的な方法を実行できます。古いものでも、プログラムで管理できるアカウント承認の概念があります。
別のオプションは、ASP.NETの認証ビットを使用するが、独自のバッキングをロールすることです。 この記事 から始めて、いくつかの基本を理解し、そこからパーツを追加することができます。
私はFSCAuthという名前の独自の単純な認証システムの作成に取り組んできました。それはしばらくの間出ていました、しかしそれは決して「保証された」安全ではありません。とにかく、とにかく独自の認証をロールすることを検討している場合(これは常に危険です)、私の認証フレームワークを出発点として使用することを検討するかもしれません。拡張は簡単になるように設計されていますが、実際に気になるものだけを実装します。
その目標の1つは、Cookieを処理し、ハッシュ値を混乱させないようにすることです(非常に微妙に安全でないものを作成できる場合)。ただし、ユースケースによっては、一部の変更が適切であるように思えます。
FSCAuthの「ブランチ」がいくつかあります。