Bagikan melalui


Aplikasi web yang memasukkan pengguna: Masuk dan keluar

Pelajari cara menambahkan rincian masuk ke kode untuk aplikasi web Anda yang memasukkan pengguna. Lalu, pelajari cara membuat pengguna keluar.

Masuk

Rincian masuk terdiri dari dua bagian:

  • Tombol masuk di halaman HTML
  • Tindakan masuk dalam kode di belakang di pengontrol

Tombol Masuk

Di Inti ASP.NET, untuk aplikasi platform identitas Microsoft, tombol Masuk diekspos di Views\Shared\_LoginPartial.cshtml (untuk aplikasi MVC) atau Pages\Shared\_LoginPartial.cshtm (untuk aplikasi Razor). Ini hanya ditampilkan ketika pengguna tidak diautentikasi. Artinya, itu ditampilkan ketika pengguna belum masuk atau sudah keluar. Sebaliknya, tombolKeluar ditampilkan saat pengguna sudah masuk. Perhatikan bahwa pengontrol Akun didefinisikan dalam paket NuGet Microsoft.Identity.Web.UI, di Area bernama MicrosoftIdentity

<ul class="navbar-nav">
  @if (User.Identity.IsAuthenticated)
  {
    <li class="nav-item">
        <span class="navbar-text text-dark">Hello @User.Identity.Name!</span>
    </li>
    <li class="nav-item">
        <a class="nav-link text-dark" asp-area="MicrosoftIdentity" asp-controller="Account" asp-action="SignOut">Sign out</a>
    </li>
  }
  else
  {
    <li class="nav-item">
        <a class="nav-link text-dark" asp-area="MicrosoftIdentity" asp-controller="Account" asp-action="SignIn">Sign in</a>
    </li>
  }
</ul>

SignIn aksi pengontrol

Di ASP.NET, memilih tombol Masuk di aplikasi web memicu tindakan SignIn pada pengontrol AccountController. Dalam versi templat ASP.NET Core sebelumnya, Account pengontrol disematkan dengan aplikasi web. Itu sudah berubah, karena pengontrol sekarang menjadi bagian dari paket NuGet Microsoft.Identity.Web.UI. Lihat AccountController.cs untuk detail.

Pengontrol ini juga menangani aplikasi Microsoft Azure AD B2C.

Setelah pengguna masuk ke aplikasi, Anda harus mengaktifkannya untuk keluar.

Keluar

Keluar dari aplikasi web membutuhkan lebih dari menghapus informasi tentang akun yang masuk dari status aplikasi web. Aplikasi web juga harus mengalihkan pengguna ke titik akhir logout platform identitas Microsoft untuk keluar.

Saat aplikasi web Anda mengalihkan pengguna ke titik akhir logout, titik akhir ini akan menghapus sesi pengguna dari browser. Jika aplikasi Anda tidak masuk ke titik akhir logout, pengguna akan mengautentikasi ulang aplikasi Anda tanpa memasukkan kredensial mereka lagi. Alasannya adalah bahwa mereka akan memiliki sesi masuk tunggal yang valid dengan platform identitas Microsoft.

Untuk mempelajari selengkapnya, lihat bagian Kirim permintaan keluar di platform identitas Microsoft dan dokumentasi protokol OpenID Connect.

Pendaftaran aplikasi

Selama pendaftaran aplikasi, Anda mendaftarkan URL keluar saluran depan. Dalam tutorial kami, Anda mendaftarkan https://localhost:44321/signout-oidc di bidang URL keluar saluran depan pada halaman Autentikasi. Untuk detailnya, lihat Mendaftarkan aplikasi webApp.

Tombol keluar

Dalam ASP.NET, memilih tombol Masuk di aplikasi web memicu tindakan SignOut pada pengontrol AccountController (lihat di bawah ini)

<ul class="navbar-nav">
  @if (User.Identity.IsAuthenticated)
  {
    <li class="nav-item">
        <span class="navbar-text text-dark">Hello @User.Identity.Name!</span>
    </li>
    <li class="nav-item">
        <a class="nav-link text-dark" asp-area="MicrosoftIdentity" asp-controller="Account" asp-action="SignOut">Sign out</a>
    </li>
  }
  else
  {
    <li class="nav-item">
        <a class="nav-link text-dark" asp-area="MicrosoftIdentity" asp-controller="Account" asp-action="SignIn">Sign in</a>
    </li>
  }
</ul>

SignOut aksi pengontrol

Dalam versi templat ASP.NET Core sebelumnya, Account pengontrol disematkan dengan aplikasi web. Itu sudah berubah, karena pengontrol sekarang menjadi bagian dari paket NuGet Microsoft.Identity.Web.UI. Lihat AccountController.cs untuk detail.

  • Mengatur URI pengalihan OpenID ke /Account/SignedOut sehingga pengontrol dipanggil kembali ketika MICROSOFT Entra ID telah menyelesaikan keluar.

  • Memanggil Signout(), yang memungkinkan middleware OpenID Connect memanggil titik akhir logout platform identitas Microsoft. Titik akhir kemudian:

    • Menghapus cookie sesi dari browser.
    • Memanggil kembali URI pengalihan setelah keluar. Secara default, URI pengalihan setelah keluar menampilkan halaman tampilan sudah keluar SignedOut.cshtml.cs. Halaman ini juga disediakan sebagai bagian dari Microsoft.Identity.Web.

Mencegat panggilan ke titik akhir logout

URI setelah keluar memungkinkan aplikasi untuk berpartisipasi dalam sign-out global.

Middleware OpenID Connect ASP.NET Core memungkinkan aplikasi Anda untuk mencegat panggilan ke titik akhir logout platform identitas Microsoft dengan memberikan peristiwa OpenID Connect bernama OnRedirectToIdentityProviderForSignOut. Ini ditangani secara otomatis oleh Microsoft.Identity.Web (yang menghapus akun dalam kasus saat aplikasi web Anda memanggil api web)

Protokol

Jika Anda ingin mempelajari selengkapnya tentang keluar, baca dokumentasi protokol yang tersedia dari OpenID Connect.

Langkah berikutnya

  • Pelajari selengkapnya dengan membangun aplikasi web ASP.NET Core yang memasukkan pengguna dalam seri tutorial multi-bagian berikut

  • Menjelajahi sampel aplikasi web platform identitas Microsoft