Delen via


Web-app waarmee gebruikers worden aangemeld: aanmelden en afmelden

Informatie over het toevoegen van aanmelding aan de code voor uw web-app waarmee gebruikers worden aangemeld. Leer vervolgens hoe ze zich kunnen afmelden.

Aanmelden

Aanmelden bestaat uit twee onderdelen:

  • De aanmeldingsknop op de HTML-pagina
  • De aanmeldingsactie in de code-behind in de controller

Aanmeldingsknop

In ASP.NET Core, voor Microsoft Identity Platform-toepassingen, wordt de knop Aanmelden weergegeven in Views\Shared\_LoginPartial.cshtml (voor een MVC-app) of Pages\Shared\_LoginPartial.cshtm (voor een Razor-app). Deze wordt alleen weergegeven wanneer de gebruiker niet is geverifieerd. Dat wil gezegd, deze wordt weergegeven wanneer de gebruiker zich nog niet heeft aangemeld of zich heeft afgemeld. Integendeel, de knop Afmelden wordt weergegeven wanneer de gebruiker al is aangemeld. Houd er rekening mee dat de accountcontroller is gedefinieerd in het NuGet-pakket Microsoft.Identity.Web.UI , in het gebied met de naam 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 actie van de controller

Als u in ASP.NET de knop Aanmelden in de web-app selecteert, wordt de SignIn actie op de AccountController controller geactiveerd. In eerdere versies van de ASP.NET Core-sjablonen is de Account controller ingesloten met de web-app. Dat is niet meer het geval omdat de controller nu deel uitmaakt van het NuGet-pakket Microsoft.Identity.Web.UI . Zie AccountController.cs voor meer informatie.

Deze controller verwerkt ook de Azure AD B2C-toepassingen.

Nadat de gebruiker zich heeft aangemeld bij uw app, kunt u zich afmelden.

Afmelden

Afmelden bij een web-app omvat meer dan het verwijderen van de informatie over het aangemelde account uit de status van de web-app. De web-app moet de gebruiker ook omleiden naar het Eindpunt van het Microsoft Identity Platform logout om zich af te melden.

Wanneer uw web-app de gebruiker omleidt naar het logout eindpunt, wist dit eindpunt de sessie van de gebruiker vanuit de browser. Als uw app niet naar het logout eindpunt is gegaan, wordt de gebruiker opnieuw geverifieerd bij uw app zonder de referenties opnieuw in te voeren. De reden hiervoor is dat ze een geldige sessie voor eenmalige aanmelding hebben met het Microsoft Identity Platform.

Zie de sectie Een afmeldingsaanvraag verzenden in het Microsoft Identity Platform en de openID Connect-protocoldocumentatie voor meer informatie.

Toepassingsregistratie

Tijdens de registratie van de toepassing registreert u een afmeldings-URL voor front-channel. In onze zelfstudie hebt u zich geregistreerd https://localhost:44321/signout-oidc in het veld Afmeldings-URL voor front-channel op de pagina Verificatie . Zie De webApp-app registreren voor meer informatie.

Knop Afmelden

Als u in ASP.NET de knop Afmelden in de web-app selecteert, wordt de SignOut actie op de AccountController controller geactiveerd (zie hieronder)

<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 actie van de controller

In eerdere versies van de ASP.NET Core-sjablonen is de Account controller ingesloten met de web-app. Dat is niet meer het geval omdat de controller nu deel uitmaakt van het NuGet-pakket Microsoft.Identity.Web.UI . Zie AccountController.cs voor meer informatie.

  • Hiermee stelt u een OpenID-omleidings-URI /Account/SignedOut in zodat de controller wordt teruggeroepen wanneer de Microsoft Entra-id de afmelding heeft voltooid.

  • Aanroepen Signout(), waarmee de OpenID Connect-middleware contact kan opnemen met het Microsoft Identity Platform-eindpunt logout . Het eindpunt vervolgens:

    • Hiermee wist u de sessiecooky uit de browser.
    • Roept de omleidings-URI na afmelding terug. De omleidings-URI na afmelding geeft standaard de pagina voor afgemelde weergave weer SignedOut.cshtml.cs. Deze pagina wordt ook geleverd als onderdeel van Microsoft.Identity.Web.

De aanroep naar het logout eindpunt onderscheppen

Met de afmeldings-URI kunnen toepassingen deelnemen aan de algemene afmelding.

Met de ASP.NET Core OpenID Connect middleware kan uw app de aanroep naar het Microsoft Identity Platform-eindpunt logout onderscheppen door een OpenID Connect-gebeurtenis met de naam OnRedirectToIdentityProviderForSignOutop te geven. Dit wordt automatisch afgehandeld door Microsoft.Identity.Web (waarmee accounts worden gewist in het geval waarin uw web-app web-API's aanroept)

Protocol

Als u meer wilt weten over afmelden, leest u de protocoldocumentatie die beschikbaar is via OpenID Connect.

Volgende stappen

  • Meer informatie door een ASP.NET Core-web-app te bouwen waarmee gebruikers worden aangemeld in de volgende reeks meerdelige zelfstudies

  • Voorbeelden van web-apps van Microsoft Identity Platform verkennen