ダウンロード サンプルファイル (501.2 KB)
前回に引き続き、ASP.NET Identity 2.0の新機能を紹介していきます。今回から数回に分けてメールと連携する機能について紹介していきます。まず今回と次回で「アカウントの確認」機能について、その動作イメージと実装方法を説明していきます。今回はメール送信処理および確認メール送信の実装まで説明します。
メール連携機能の概要
前回から紹介を始めたASP.NET Identity 2.0の新機能には、メールと連携してセキュリティを強化する仕組みがいくつかあります。主なものは次の3つです。
- アカウントの確認: ユーザーを登録する前に、メールで確認を行います。
- パスワードのリセット: メールでパスワードのリセットを行うためのページへのリンクを送付します。
- 二段階認証: 登録したパスワードの他に、メールやSMSで送った一時パスワードを使い、二段階で認証を行います。
今回と次回は、この中から「アカウントの確認」を取り上げ、どのようにメールと連携するのか詳しく紹介します。「パスワードのリセット」「二段階認証」についても順次紹介する予定ですので、楽しみにお待ちください。
なお、今回のサンプルは8月4日にリリースされた「Visual Studio 2013 Update 3」で新たに「ConfirmationWebFormApp」プロジェクトを作成していますので、事前にUpdate 3をインストールしておいてください。
8月4日にASP.NET Identityの最新バージョンである2.1.0がリリースされました。その主な新機能は次のとおりです。
- SignInManagerクラスの導入: 二段階認証やアカウントのロックアウト機能を簡単に使用するための、ログイン(サインイン)処理をラップするクラスです。前回の記事で紹介したアカウントのロックアウトに必要な雑多な実装が、このクラスを使用することで不要になります。
また、同日ASP.NET Identity 2.1.0に対応した新たなテンプレートを取り込んだVS2013 Update 3がリリースされています。新テンプレートの主な変更点は以下の通りです。
- 二段階認証の骨組の追加: 先述のSignInManagerクラスを使用し、パスワード以外にワンタイムパスワード等を必要とする「二段階認証」を行うための骨組が組み込まれました。この機能については、本連載の後の回で取り上げる予定です。
- アカウントロックアウトの骨組の追加: 二段階認証と同様SignInManagerクラスを用いたアカウントロックアウトの骨組が組み込まれています。こちらについては次回の記事で紹介します。
詳しくは以下の記事を参考にしてください。
アカウントの確認とは
それではまず「アカウントの確認」機能について、もう少し詳しく紹介していきます。「アカウントの確認」とは、ユーザー登録の際に本当に登録するかどうかメールを送信し、確認を行う機能です。その主な目的はセキュリティの強化で、次のようなものがあります。
- ユーザーが存在することの確認
- 正規のEメールアドレスであることの確認
- スパムなどによる登録申請でないことの確認
アカウントの確認の処理イメージは以下のようになります。
(1)ユーザー登録
ユーザー登録ページにアクセスし、メールアドレスを入力してユーザーの登録を行います。
(2)確認メール送信
ユーザー登録処理後に、入力されたメールアドレス宛に「確認メール」を送ります。この確認メールには、アカウントを確認するための「確認トークン」を含んだ「アカウント確認ページ」へのリンクが含まれています。
なお、この時点でユーザー情報は登録されますが、「未確認」状態であるためログインはできません。
(3)確認処理
ユーザーは(2)で送付された確認メールに含まれるリンクから、アカウント確認ページを表示します。
アカウント確認ページでは「確認トークン」の検証を行い、妥当なものであればユーザーを「確認済」状態に変更します。したがって、メールで送られたリンク以外からアカウント確認ページを表示しても、確認トークンが含まれていない、もしくは妥当でないため、アカウントの確認は失敗します。
(4)ログイン
アカウントの確認が成功するとユーザー情報が「確認済」状態になり、ログインできるようになります。
今回は(2)の確認メールを送信するまでを実装していきます。
この記事は参考になりましたか?
- ASP.NET Identity入門連載記事一覧
- この記事の著者
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
WINGSプロジェクト 高野 将(タカノ ショウ)
<個人紹介>新潟県長岡市在住の在宅リモートワークプログラマー。家事や育児、仕事の合間に長岡IT開発者勉強会(NDS)、Niigata.NET、TDDBCなどのコミュニティに関わったり、Web記事や書籍などの執筆を行ったりしている。著書に『アプリを作ろう! Visual C#入門 Visual C# 2017対応』(日経BP社、2017)など。< WINGSプロジェクト について>有限会社 WINGSプロジェクト が運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での 登録メンバ は約50名で、現在も執筆メンバを 募集中 。興味のある方は、どしどし応募頂きたい。 著書 、 記事 多数。 RSS X: @WingsPro_info (公式)、 @WingsPro_info/wings (メンバーリスト) Facebook
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア

