2

ユーザーが登録できるがアクティブではないアプリにフォーム認証を使用しています。カタツムリのメール (長い話) でアクティベーション コードを送信し、ユーザーはその情報を返してアカウントを有効にすることができます。

ユーザーが戻ってきて、ユーザー名、パスワード、生成されたキーを入力してアカウントをアクティブ化できるページを作成したいと考えています。別のテーブルに保存したキーを生成する予定です。非アクティブなアカウントでユーザー名とパスワードを確認できません。Membership.ValidateUser(username,password) を試してみましたが失敗しましたが、アカウントを有効にすると機能します。

これを確認する方法についてのアイデアはありますか?

4

2 に答える 2

2

最初にアカウントを有効化します。

アクティベーション コードをメールで送信する場合は、メールからアクティベーション コードを (おそらくクエリ文字列経由で) 受け取り、アカウントをアクティベートし、フォーム認証がアクティベートされたログイン ページにリダイレクトする匿名アクセス ページを用意します (ユーザー名がおよびパスワードはすでに作成されています)。

アクセス コードが無効で失敗した場合は、必要に応じてアカウントを非アクティブ化できます。

于 2009-03-30T16:42:46.850 に答える
1

IsActive = false は設定しません。これは、アカウントを無効にして、あらゆる種類のログインを防止するためのものです。代わりに、ログインできる状態のままにしておく問題はありません。メンバーシップ ロールを使用して、ユーザーがいつ検証されるかを指定します。つまり「確認済み」です。

アカウントをアクティブ化せずにログインしようとした場合は、確認済みの役割があるかどうかを確認するだけです。そうでない場合は、「あなたのアカウントはまだ有効になっていません。普通郵便をお待ちください」のページにリダイレクトします。または、「以下に確認コードを入力してください。」メッセージ。

彼らが最終的に普通​​郵便から適切な検証コードを入力したら、単純に検証済みロールに追加します。

これにより、ユーザーがログインしてアカウントのステータスを「確認」できるように制御できます。そして、IsActive の問題を解決します。

于 2009-03-30T16:45:37.577 に答える