shuhelohelo’s blog

Xamarin.Forms多めです.

ASP.NET MVCプロジェクトにIdentityユーザー認証機能を追加する

とりあえずチュートリアルに従ってアプリを作る。

そうだ、ユーザー認証機能を追加しよう。

というときのためのメモです。

また、Identityユーザー認証機能を後付するとプロジェクト内にIdentityで使われるクラスやページのソースコードが作成されるので、いろいろアレンジしやすいです。

Identityユーザー認証機能の追加

追加自体はとても簡単です。 スキャフォールディングによって作成されます。

ソリューションエクスプローラで右クリックしてコンテキストメニューから追加 > 新規スキャフォールディングアイテムを選択します。

f:id:shuhelohelo:20190612122308p:plain

スキャフォールディングを追加ウィンドウが開くので、左ペインからIDを選択して右下の追加ボタンを押します。

f:id:shuhelohelo:20190612122451p:plain

IDの追加ウィンドウが開く。

f:id:shuhelohelo:20190612122900p:plain

とりあえずやること。

Startup.csの編集

認証機能を使うことを指定する。

Configureメソッドに以下を追加

これはapp.UseMVCよりも前に置くこと。

app.UseAuthentication();

_Layout.cshtmlの編集

Identityのスキャフォールディングで_LoginPartial.cshtmlが作成されているので、これがサイトのヘッダ部分に表示されるようにする。

<partial name="_LoginPartial" />を埋め込む。

    <header>
        <nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-white border-bottom box-shadow mb-3">
            <div class="container">
・・・
                <div class="navbar-collapse collapse d-sm-inline-flex flex-sm-row-reverse">
                    <partial name="_LoginPartial" />
・・・
                </div>
            </div>
        </nav>
    </header>

IdentityのLoginページやRegisterページはライブラリ内に保持されているので、直接編集などはできない。 困ったな。

わかった!!!

IDの追加画面で、オーバーライドする項目でチェックをつけたページがAreas/Identity/Pages/Account内に作成されて、オーバーライドという形で編集できるようになる。