Delen via


Web-app waarmee gebruikers worden aangemeld: Aanmelden en afmelden

Van toepassing op: Groene cirkel met een wit vinkje. Werknemershuurders Witte cirkel met een grijs X-symbool. Externe huurders (meer informatie)

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. De accountcontroller is gedefinieerd in het Microsoft.Identity.Web.UI NuGet-pakket, 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, wilt u hen in staat stellen zich af te melden.

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 naar het logout-eindpunt stuurt, wist dit eindpunt de sessie van de gebruiker in de browser. Als uw app niet naar het logout-eindpunt is gegaan, kan de gebruiker zich opnieuw verifiëren 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 het OpenID Connect-protocol documentatie voor meer informatie.

Applicatieregistratie

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

Afmeldenknop

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 in op /Account/SignedOut 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 is dan:

    • Hiermee wist u de sessiecookie 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 dat 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 te weten komen door een ASP.NET Core-web-app te bouwen waarmee gebruikers worden aangemeld in de volgende meerdelige reeks van zelfstudies

  • Voorbeelden van web-apps van Microsoft Identity Platform verkennen