Aracılığıyla paylaş


Öğretici: Dış kiracı için ASP.NET Core web uygulamasına oturum açma ve oturum kapatma ekleme

Bu öğretici, ASP.NET Core web uygulaması oluşturmayı ve Microsoft Entra yönetim merkezini kullanarak kimlik doğrulaması için hazırlamayı gösteren serinin son bölümüdür. Bu serinin 2. bölümünde Visual Studio Code'da bir ASP.NET Core projesi oluşturdunuz ve bunu kimlik doğrulaması için yapılandırmıştınız. Bu son adımda, oturum açma ve oturum kapatma deneyimleri ekleyecek, uygulamada oturum açıp kapatacaksınız.

Bu öğreticide;

  • Oturum açma ve oturum kapatma deneyimleri ekleme
  • Kimlik belirteci taleplerini görüntülemek için kod ekleme
  • Kullanıcı akışını kullanarak uygulamada oturum açma ve oturumu kapatma

Önkoşullar

Oturum açma ve oturumu kapatma deneyimini ekleme

NuGet paketlerini yükledikten ve kimlik doğrulaması için gerekli kodu ekledikten sonra oturum açma ve oturum kapatma deneyimlerini eklememiz gerekir. Kod, kimlik belirteci taleplerini okuyarak kullanıcının kimliğinin doğrulanıp doğrulandığını denetler ve kimlik belirteci taleplerini ayıklamak için kullanır User.Claims .

  1. IDE'nizde Görünümler/Paylaşılan'a gidin ve _LoginPartial.cshtml adlı yeni bir dosya oluşturun.

  2. _LoginPartial.cshtml dosyasını açın ve oturum açma ve oturumu kapatma deneyimini eklemek için aşağıdaki kodu ekleyin.

    @using System.Security.Principal
    
    <ul class="navbar-nav">
    @if (User.Identity is not null && User.Identity.IsAuthenticated)
    {
            <li class="nav-item">
                <span class="nav-link text-dark">Hello @User.Claims.First(c => c.Type == "preferred_username").Value!</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>
    
  3. Ardından, aynı klasörde bulunan Layout.cshtml dosyasına bir başvuru _LoginPartial ekleyin. Bunu aşağıdaki kod parçacığında navbar-collapse gösterildiği gibi sınıfın arkasına yerleştirmenizi öneririz:

    <div class="navbar-collapse collapse d-sm-inline-flex flex-sm-row-reverse">
        <partial name="_LoginPartial" />
    </div>
    

Kimlik belirteci taleplerini görüntüleme

Web uygulaması artık kullanıcıların Microsoft kimlik platformu ile oturum açacak şekilde yapılandırılmıştır. Sonraki adım, kimlik belirteci taleplerini görüntülememize olanak tanıyan kod eklemektir. Uygulama, kullanarak kullanıcının kimliğinin doğrulanıp doğrulanmadığını User.Identity.IsAuthenticateddenetler ve içindeki her öğede User.Claimsdöngü yaparak ve Valuedöndürerek Type kimlik belirteci taleplerini listeler.

  1. Views/Home/Index.cshtml dosyasını açın ve dosyanın içeriğini aşağıdaki kod parçacığıyla değiştirin:

    @{
    ViewData["Title"] = "Home Page";
    }
    
    <style>
        table {
            border-collapse: collapse;
            width: 100%;
        }
        th, td {
            text-align: justify;
            padding: 8px;
            border-bottom: 1px solid #ddd;
            border-top: 1px solid #ddd;
        }
    </style>
    
    <div class="text-center">
        <h1 class="display-4">Welcome</h1>
    
        @if (@User.Identity is not null && @User.Identity.IsAuthenticated)
        {
            <p>You are signed in! Below are the claims in your ID token. For more information, visit: <a href="https://learn.microsoft.com/azure/active-directory/develop/id-tokens">Microsoft identity platform ID tokens</a></p>
            <table>
                <tbody>
    
                    @foreach (var item in @User.Claims)
                    {
                        <tr>
                            <td>@item.Type</td>
                            <td>@item.Value</td>
                        </tr>
                    }
                </tbody>
            </table>
        }
    
        <br />
        <p>Learn about <a href="https://learn.microsoft.com/azure/active-directory/develop/v2-overview">building web apps with Microsoft identity platform</a>.</p>
    </div>
    

Uygulamada oturum açma

  1. Başlatma Ayarlar.json dosyasında profili başlatmak https için terminale aşağıdakileri yazarak uygulamayı başlatın.

    dotnet run --launch-profile https
    
  2. Yeni bir özel tarayıcı açın ve bu durumda https://localhost:7274tarayıcıya uygulama URI'sini girin.

  3. Daha önce yapılandırdığınız kaydolma kullanıcı akışını test etmek için Hesap yok mu? seçeneğini belirleyin . Bir tane oluşturun.

  4. Hesap oluştur penceresinde, dış kiracınıza kayıtlı e-posta adresini girin. Bu adres, uygulamanız için kullanıcı olarak kaydolma akışını başlatır.

  5. Dış kiracıdan tek seferlik bir geçiş kodu girdikten sonra yeni bir parola ve daha fazla hesap ayrıntısı girdikten sonra bu kayıt akışı tamamlanır.

    1. Oturumunuz açık kalmanızı isteyen bir pencere görüntülenirse Evet veya Hayır'ı seçin.
  6. ASP.NET Çekirdek Karşılama sayfası tarayıcınızda aşağıdaki ekran görüntüsünde gösterildiği gibi görünür:

    ASP.NET Core web uygulamasında oturum açma ekran görüntüsü.

Uygulama oturumunu kapatma

  1. Uygulamanın oturumunu kapatmak için gezinti çubuğunda Oturumu kapat'ı seçin.
  2. Hangi hesabın oturumunu kapatacaklarını soran bir pencere görüntülenir.
  3. Oturum başarıyla kapatıldığında, tüm tarayıcı pencerelerini kapatmanızı tavsiye eden son bir pencere görüntülenir.

Ayrıca bkz.