2009-03-30 21 views
2

私は、ユーザーが登録できるがアクティブではないアプリに対してフォーム認証を使用しています。私たちはカタツムリメール(長文)でアクティベーションコードを送信し、ユーザーはその情報に戻ってアカウントを有効にすることができます。フォーム認証 - 非アクティブユーザーのユーザー名とパスワードを確認するにはどうすればいいですか?

私は、ユーザーが戻って来て、自分のユーザー名、パスワード、および生成されたキーを入力してアカウントを有効にできるページを作成したいと考えています。私は別のテーブルに格納したキーと私はそれを生成する予定です。非アクティブアカウントでユーザー名とパスワードを確認できません。 Membership.ValidateUser(username、password)を試してみましたが失敗しますが、アカウントを有効にすると動作します。

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

答えて

1

IsActive = falseを設定しません。それはアカウントを無効にして、どんなタイプのログインも阻止するためです。代わりに、私は彼らがログインする能力を残して問題が表示されません。メンバーシップロールを使用して、ユーザーの確認時期を指定します。私。 "確認済み"

アカウントを有効にしてログインを試みていない場合は、確認済みの役割があるかどうかを確認するだけです。そうでない場合は、「アカウントはまだ有効になっていません。カタツムリのメールを待ってください」というページにリダイレクトしてください。または、「下に確認コードを入力してください。」メッセージ。

最終的にsnail mailから適切な確認コードを入力したら、検証済みの役割に追加するだけです。

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

2

最初にアカウントを有効にしてください。

電子メールでアクティベーションコードを送信する場合は、電子メールからアクティベーションコードを(おそらくクエリ文字列を介して)受信し、アカウントをアクティブにし、フォーム認証を有効にしてログインページにリダイレクトする匿名アクセスページ(ユーザ名とパスワードがすでに作成されていることを前提とします)。

アクセスコードが無効で失敗した場合は、オプションでアカウントを無効にすることもできます。

関連する問題