Megosztás a következőn keresztül:


Felhasználókat bejelentkező webalkalmazás: Bejelentkezés és kijelentkezés

Megtudhatja, hogyan adhat hozzá bejelentkezést a felhasználókat bejelentkező webalkalmazás kódjához. Ezután megtudhatja, hogyan hagyhatja, hogy kijelentkezjenek.

Bejelentkezés

A bejelentkezés két részből áll:

  • A bejelentkezési gomb a HTML-oldalon
  • A bejelentkezési művelet a vezérlő mögötti kódban

Bejelentkezés gomb

A ASP.NET Core-ban Microsoft Identitásplatform alkalmazások esetén a Bejelentkezés gomb megjelenik Views\Shared\_LoginPartial.cshtml (MVC-alkalmazások esetén) vagy Pages\Shared\_LoginPartial.cshtm (Razor-alkalmazások esetén). Csak akkor jelenik meg, ha a felhasználó nincs hitelesítve. Ez azt jelzi, hogy akkor jelenik meg, ha a felhasználó még nem jelentkezett be vagy kijelentkezett. Éppen ellenkezőleg, a Kijelentkezés gomb akkor jelenik meg, ha a felhasználó már bejelentkezett. Vegye figyelembe, hogy a fiókvezérlő a Microsoft.Identity.Web.UI NuGet csomagban, a MicrosoftIdentity nevű területen van definiálva

<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 a vezérlő művelete

A ASP.NET a webalkalmazás Bejelentkezési gombjának kiválasztása aktiválja a SignIn műveletet a AccountController vezérlőn. A ASP.NET Core-sablonok korábbi verzióiban a Account vezérlő beágyazva lett a webalkalmazásba. Ez már nem így van, mert a vezérlő most már a Microsoft.Identity.Web.UI NuGet-csomag része. Részletekért tekintse meg a AccountController.cs .

Ez a vezérlő az Azure AD B2C-alkalmazásokat is kezeli.

Miután a felhasználó bejelentkezett az alkalmazásba, engedélyeznie kell a kijelentkezésüket.

Kijelentkezés

A webalkalmazásból való kijelentkezés több, mint a bejelentkezett fiók adatainak eltávolítása a webalkalmazás állapotából. A webalkalmazásnak át kell irányítania a felhasználót a Microsoft Identitásplatform logout végpontra a kijelentkezéshez.

Amikor a webalkalmazás átirányítja a felhasználót a logout végpontra, ez a végpont törli a felhasználó munkamenetét a böngészőből. Ha az alkalmazás nem a végpontra logout ment, a felhasználó újrahitelesíti az alkalmazást anélkül, hogy újra megírta volna a hitelesítő adatait. Ennek az az oka, hogy érvényes egyszeri bejelentkezési munkamenetet fognak létrehozni a Microsoft Identitásplatform.

További információ: A kijelentkezés kérésének küldése szakasz a Microsoft Identitásplatform és az OpenID Connect protokoll dokumentációjában.

Alkalmazásregisztráció

Az alkalmazásregisztráció során regisztrál egy előtérbeli bejelentkezési URL-címet. Az oktatóanyagban regisztrálta https://localhost:44321/signout-oidc magát a Hitelesítés lap Front-channel logout URL-mezőjében. További információ: A webApp alkalmazás regisztrálása.

Kijelentkezés gomb

A ASP.NET a kijelentkezés gombra kattintva a webalkalmazás aktiválja a SignOut műveletet a AccountController vezérlőn (lásd alább)

<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 a vezérlő művelete

A ASP.NET Core-sablonok korábbi verzióiban a Account vezérlő beágyazva lett a webalkalmazásba. Ez már nem így van, mert a vezérlő most már a Microsoft.Identity.Web.UI NuGet-csomag része. Részletekért tekintse meg a AccountController.cs .

  • Beállít egy OpenID-átirányítási URI-t /Account/SignedOut , hogy a rendszer visszahívja a vezérlőt, amikor a Microsoft Entra ID befejezte a kijelentkezéseket.

  • HívásokSignout(), amelyek lehetővé teszi, hogy az OpenID Connect köztes szoftver lépjen kapcsolatba a Microsoft Identitásplatform logout végponttal. A végpont ezután:

    • Törli a munkamenet-cookie-t a böngészőből.
    • Visszahívja a kijelentkezés utáni átirányítási URI-t. Alapértelmezés szerint a kijelentkezés utáni átirányítási URI megjeleníti a kijelentkezés utáni nézetoldalt SignedOut.cshtml.cs. Ez a lap a Microsoft.Identity.Web részeként is elérhető.

A végpont felé irányuló logout hívás elfogása

A kijelentkezés utáni URI lehetővé teszi az alkalmazások számára, hogy részt vegyenek a globális kijelentkezésben.

A ASP.NET Core OpenID Connect köztes szoftver lehetővé teszi az alkalmazás számára, hogy elfogja a Microsoft Identitásplatform logout végpontra irányuló hívást egy OpenID Connect nevű esemény megadásávalOnRedirectToIdentityProviderForSignOut. Ezt a Microsoft.Identity.Web automatikusan kezeli (amely törli a fiókokat abban az esetben, ha a webalkalmazás webes API-t hív)

Protokoll

Ha többet szeretne megtudni a kijelentkezésről, olvassa el az OpenID Connectből elérhető protokolldokumentációt.

Következő lépések