5

ユーザーがサインアップするときに、ユーザーの電子メールアカウントに確認リンクを送信する必要があるWebサイトを開発しています。

ユーザーがこのリンクをクリックするuserEnableと、データベースのフィールドが「false」から「true」に変わります。

ユーザーがサインアップボタンをクリックしたときに確認メールをユーザーに送信するにはどうすればよいですか。

ユーザーがこの確認リンクをクリックすると、フィールドは「false」から「true」UserEnableにどのように変化しますか

言語としてVB.NETを使用し、データベースにSQLServer2008を使用してasp.net4.0を使用しています。

4

5 に答える 5

4

Active = falseまず、データベース(1ビットデータベースフィールドタイプ)のような列を持つデータベースにテーブルUserを作成する必要があります。次に、ユーザーがアカウントを作成した後、ユーザーアクティベーションGUIDを含むクエリ文字列を含むアクティベーションリンクをユーザーに送信する必要があります。何かのようなもの:

www.mysite.com?id=21EC2020-3AEA-1069-A2DD-08002B30309Dでアカウントをアクティブ化してください

確認ページで、次のようなこのクエリを確認します

var id = Response.QueryString["id"]
if (id!= null) userBL.ActivateUser(id);

ActivateUser()メソッドは、フィールドをtrueに更新し、確認メールを送信します。

于 2011-03-20T08:48:48.417 に答える
1

nemkeによって投稿された回答は良いですが、私は少し違ったやり方をしており、もう少し安全で、将来の変更から保護されていると感じています。データベースに作成されたときに、各ユーザーレコードに確認用の2つの追加フィールドを作成します。

各ユーザーの次のフィールドのようなもの:

userID: getUniqueUserID()
confirmed: false,
confirmCode: getRandomUUID()

は各レコードconfirmCodeの一意とは別に保持さuserIDれ、登録に使用されたアドレスに電子メールが送信される場合にのみ使用する必要があります。次に、次のようなURLを送信します。

http://example.com/activate?id=43d24b9ca73&c=16b4cf80-c59a-11e2-8b8b-0800200c9a66

次に、クエリフィールドをサーバー側で取得し、を使用しidて、一意に基づいて特定のユーザーレコードを検索し、フィールドがレコード内で一致userIDすることを確認してから、フィールドをtrueに設定し、特定のユーザーのレコードをデータベース。cconfirmCodeconfirmed

于 2013-05-26T00:27:09.997 に答える
0

.NET4フレームワーク

それを行う方法については、このビデオをご覧ください。

http://www.asp.net/security/videos/implement-the-registration-verification-pattern

于 2011-06-13T15:38:00.663 に答える
0

ユーザー

ID | ユーザー名| メール| UserEnabled

電子メールを送信するには、これを確認してください。

確認リンクを受け取ったら、[電子メール]フィールドに基づいてルックアップを実行し、対応するUserEnabledをtrueに設定します。

于 2011-03-20T07:57:43.393 に答える
0

ASP.NETビルトインメンバーシップコントロールを使用している場合は、

CreateUserWizardコントロールのMailDefinitionプロパティ

MailDefinitionプロパティは、新しいユーザーに送信される電子メールメッセージの形式と内容を定義するために使用するプロパティのグループへの参照を返します。一般的な設定には、件名と送信者の差出人アドレスが含まれます。

于 2011-03-20T08:18:37.843 に答える