Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: İş gücü kiracıları
Dış kiracılar (daha fazla bilgi edinin)
Bu öğretici, .NET Çok Platformlu Uygulama Kullanıcı Arabirimi (.NET MAUI) kabuk uygulamasının nasıl oluşturulacağını ve Microsoft Entra yönetim merkezini kullanarak kimlik doğrulaması için nasıl hazırlandığını gösteren serinin son bölümüdür. Bu serinin Bölüm 2'de MSAL SDK'sını başlatmak için özel bir Microsoft Kimlik Doğrulama Kitaplığı (MSAL) istemci yardımcısı eklediniz, gerekli kitaplıkları yükleyin ve bir görüntü kaynağı ekleyin. Bu son adım, .NET MAUI'de oturum açma ve oturum kapatma kodu eklemeyi ve kabuk uygulamasını Android platformunda çalıştırmayı gösterir.
Bu öğreticide şunları yapacaksınız:
- Oturum açma ve oturum kapatma kodu ekleyin.
- App Shell'i değiştirin.
- Platforma özgü kod ekleyin.
- Uygulama ayarlarını ekleyin.
- .NET MAUI kabuk uygulamasını çalıştırın ve test edin.
Önkoşullar
Oturum açma ve oturum kapatma kodu ekleme
.NET MAUI uygulamasının kullanıcı arabirimi (UI), her hedef platformun yerel denetimlerine eşlenen nesnelerden oluşturulur. .NET MAUI uygulamasının kullanıcı arabirimini oluşturmak için kullanılan ana denetim grupları sayfalar, düzenler ve görünümlerdir.
Ana görünüm sayfası ekleme
Kodumuzun, main view
'ın tanımlanacağı şekilde düzenlenmesi sonraki adımlarla sağlanacaktır.
MainPage.xaml ve MainPage.xaml.cs dosyalarını projenizden silin, artık gerekli değiller. Çözüm Gezgini bölmesinde MainPage.xamlgirişini bulun, sağ tıklayın ve Silöğesini seçin.
SignInMaui proje üzerine sağ tıklayın ve >Yeni Klasörekle seçin. Klasörü Görünümler olarak adlandırın.
Görünüm'ye sağ tıklayın.
'u seçin,>yeni öğe ekle....
Şablon listesinde .NET MAUI seçin.
.NET MAUI ContentPage (XAML) şablonunu seçin. Dosyayı MainView.xaml adlandırın.
Ekle'ı seçin.
MainView.xaml dosyası yeni bir belge sekmesinde açılır ve sayfanın kullanıcı arabirimini temsil eden tüm XAML işaretlemeleri görüntülenir. XAML işaretlemesini aşağıdaki işaretlemeyle değiştirin:
<?xml version="1.0" encoding="utf-8" ?> <ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="SignInMaui.Views.MainView" Title="Microsoft Entra External ID" > <Shell.BackButtonBehavior> <BackButtonBehavior IsVisible="False" IsEnabled="False" /> </Shell.BackButtonBehavior> <ScrollView> <VerticalStackLayout Spacing="25" Padding="30,0" VerticalOptions="Center"> <Image Source="external_id.png" SemanticProperties.Description="External ID" HeightRequest="200" HorizontalOptions="Center" /> <Label Text="CIAM" SemanticProperties.HeadingLevel="Level1" FontSize="26" HorizontalOptions="Center" /> <Label Text="MAUI sample" SemanticProperties.HeadingLevel="Level1" FontSize="26" HorizontalOptions="Center" /> <Button x:Name="SignInButton" Text="Sign In" SemanticProperties.Hint="Sign In" Clicked="OnSignInClicked" HorizontalOptions="Center" IsEnabled="False"/> </VerticalStackLayout> </ScrollView> </ContentPage>
Dosyayı kaydedin.
Şimdi sayfaya yerleştirilen XAML denetimlerinin temel bölümlerini ayıralım:
-
<ContentPage>
, MainView sınıfının kök nesnesidir. -
<VerticalStackLayout>
, ContentPage'in alt nesnesidir. Bu düzen denetimi, alt öğelerini dikey olarak ardışık bir şekilde düzenler. -
<Image>
bir görüntü gösterir; bu durumda, daha önce indirdiğiniz azureactive_directory.png_ kullanılır. -
<Label>
denetimleri metin görüntüler. -
<Button>
kullanıcı tarafından basılabilir ve bu daClicked
olayını tetikler.Clicked
olayına yanıt olarak kod çalıştırabilirsiniz. -
Clicked="OnSignInClicked"
düğmeninClicked
olayı arka planda kod dosyasında tanımlanacak olanOnSignInClicked
olay işleyicisine atanır. Bu kodu bir sonraki adımda oluşturacaksınız.
-
OnSignInClicked olayını işleme
Sonraki adım, düğmenin Clicked
olayının kodunu eklemektir.
Visual Studio'nun Çözüm Gezgini bölmesinde MainView.xaml dosyasını genişleterek arka planda kod dosyasını MainView.xaml.csaçın. MainView.xaml.cs açın ve dosyanın içeriğini aşağıdaki kodla değiştirin:
// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. using SignInMaui.MSALClient; using Microsoft.Identity.Client; namespace SignInMaui.Views { public partial class MainView : ContentPage { public MainView() { InitializeComponent(); IAccount cachedUserAccount = PublicClientSingleton.Instance.MSALClientHelper.FetchSignedInUserFromCache().Result; _ = Dispatcher.DispatchAsync(async () => { if (cachedUserAccount == null) { SignInButton.IsEnabled = true; } else { await Shell.Current.GoToAsync("claimsview"); } }); } private async void OnSignInClicked(object sender, EventArgs e) { await PublicClientSingleton.Instance.AcquireTokenSilentAsync(); await Shell.Current.GoToAsync("claimsview"); } protected override bool OnBackButtonPressed() { return true; } } }
MainView
sınıfı, uygulamanın ana görünümünü görüntülemekle sorumlu bir içerik sayfasıdır. Oluşturucuda,MSALClientHelper
örneğindenPublicClientSingleton
kullanarak önbelleğe alınmış kullanıcı hesabını alır ve önbelleğe alınmış kullanıcı hesabı bulunamazsa oturum açma düğmesini etkinleştirir.Oturum açma düğmesine tıklandığında, sessizce bir belirteç edinmek için
AcquireTokenSilentAsync
yöntemini çağırır veclaimsview
yöntemini kullanarakShell.Current.GoToAsync
sayfasına yönlenir. Ayrıca,OnBackButtonPressed
yöntemi true geri döndürmesi için geçersiz kılınır ve bu, bu görünümde geri düğmesinin devre dışı olduğunu belirtir.
Talep görünümü sayfası ekle
Sonraki adımlar, ClaimsView
sayfasının tanımlanması için kodu düzenler. Sayfada kullanıcının kimlik belirtecinde bulunan talepleri görüntülenir.
Visual Studio'nun Çözüm Gezgini bölmesinde, Görünümlerüzerine sağ tıklayın.
'u seçin,>yeni öğe ekle....
Şablon listesinde .NET MAUI seçin.
.NET MAUI ContentPage (XAML) şablonunu seçin. Dosyayı ClaimsView.xamlolarak adlandırın.
Ekle'ı seçin.
ClaimsView.xaml dosyası yeni bir belge sekmesinde açılır ve sayfanın kullanıcı arabirimini temsil eden tüm XAML işaretlemesi görüntülenir. XAML işaretlemesini aşağıdaki işaretlemeyle değiştirin:
<?xml version="1.0" encoding="utf-8" ?> <ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="SignInMaui.Views.ClaimsView" Title="ID Token View"> <Shell.BackButtonBehavior> <BackButtonBehavior IsVisible="False" IsEnabled="False" /> </Shell.BackButtonBehavior> <VerticalStackLayout> <Label Text="CIAM" FontSize="26" HorizontalOptions="Center" /> <Label Text="MAUI sample" FontSize="26" Padding="0,0,0,20" HorizontalOptions="Center" /> <Label Padding="0,20,0,0" VerticalOptions="Center" HorizontalOptions="Center" FontSize="18" Text="Claims found in ID token" /> <ListView ItemsSource="{Binding IdTokenClaims}" x:Name="Claims"> <ListView.ItemTemplate> <DataTemplate> <ViewCell> <Grid Padding="0, 0, 0, 0"> <Label Grid.Column="1" Text="{Binding}" HorizontalOptions="Center" /> </Grid> </ViewCell> </DataTemplate> </ListView.ItemTemplate> </ListView> <Button x:Name="SignOutButton" Text="Sign Out" HorizontalOptions="Center" Clicked="SignOutButton_Clicked" /> </VerticalStackLayout> </ContentPage>
Bu XAML işaretleme kodu, .NET MAUI uygulamasındaki talep görünümünün kullanıcı arabirimi düzenini temsil eder. Başlangıç olarak
ContentPage
'ı bir başlıkla tanımlar ve geri düğmesi işlevini devre dışı bırakır.İçeriğinde birkaç
VerticalStackLayout
öğesi bulunan birLabel
'da, bu öğeler statik metin görüntüler ve bunu takiben, kimlik belirtecinde bulunan talepleri görüntülemek içinListView
adlı bir koleksiyona bağlananClaims
adlı birIdTokenClaims
yer alır. Her talep birViewCell
içinde birDataTemplate
kullanılarak işlenir ve bir Kılavuz içinde ortalanmışLabel
olarak görüntülenir.Son olarak, düzenin en altında ortalanmış bir
Sign Out
düğmesi vardır ve bu düğme tıklandığındaSignOutButton_Clicked
olay işleyicisini tetikler.
ClaimsView verilerini işleme
Sonraki adım, ClaimsView
verileri işlemek için kodu eklemektir.
Visual Studio'nun Çözüm Gezgini bölmesinde, ClaimsView.xaml dosyasını genişleterek arka planda kod dosyasını ClaimsView.xaml.csgörüntüleyin. ClaimsView.xaml.cs açın ve dosyanın içeriğini aşağıdaki kodla değiştirin:
using SignInMaui.MSALClient; using Microsoft.Identity.Client; namespace SignInMaui.Views; public partial class ClaimsView : ContentPage { public IEnumerable<string> IdTokenClaims { get; set; } = new string[] {"No claims found in ID token"}; public ClaimsView() { BindingContext = this; InitializeComponent(); _ = SetViewDataAsync(); } private async Task SetViewDataAsync() { try { _ = await PublicClientSingleton.Instance.AcquireTokenSilentAsync(); IdTokenClaims = PublicClientSingleton.Instance.MSALClientHelper.AuthResult.ClaimsPrincipal.Claims.Select(c => c.Value); Claims.ItemsSource = IdTokenClaims; } catch (MsalUiRequiredException) { await Shell.Current.GoToAsync("claimsview"); } } protected override bool OnBackButtonPressed() { return true; } private async void SignOutButton_Clicked(object sender, EventArgs e) { await PublicClientSingleton.Instance.SignOutAsync().ContinueWith((t) => { return Task.CompletedTask; }); await Shell.Current.GoToAsync("mainview"); } }
ClaimsView.xaml.cs kodu, .NET MAUI uygulamasındaki talep görünümünün arka planındaki kodu temsil eder. Gerekli ad alanlarını içeri aktararak ve
ClaimsView
genişletenContentPage
sınıfını tanımlayarak başlar.IdTokenClaims
özelliği, başlangıçta hiçbir talep bulunamadığını belirten tek bir dizeye ayarlanmış olan dizelerin numaralandırılabilir bir özelliğidir.ClaimsView
oluşturucu bağlama bağlamını geçerli örneğe ayarlar, görünüm bileşenlerini başlatır veSetViewDataAsync
yöntemini zaman uyumsuz olarak çağırır.SetViewDataAsync
yöntemi, belirteci sessiz bir şekilde edinmeyi dener, kimlik doğrulama sonucundan talepleri alır veIdTokenClaims
özelliğiniListView
adlıClaims
'de göstermeye ayarlar. Kimlik doğrulaması için kullanıcı etkileşimi gerektiğini belirten birMsalUiRequiredException
oluşursa, uygulama talep görünümüne gider.OnBackButtonPressed
yöntemi, her zaman true döndürmek için geri düğmesi davranışını geçersiz kılar ve kullanıcının bu görünümden geri dönmesini engeller.SignOutButton_Clicked
olay işleyicisi,PublicClientSingleton
örneğini kullanarak kullanıcıyı oturumdan çıkarır ve tamamlandığındamain view
'ye gider.
App Shell'i değiştirme
AppShell
sınıfı, bir uygulamanın görsel hiyerarşisini, uygulamanın kullanıcı arabirimini oluştururken kullanılan XAML işaretlemesini tanımlar.
AppShell
'ı Views
hakkında bilgilendirmek için güncelleyin.
XAML düzenleyicisini açmak için
AppShell.xaml
bölmesindeki dosyasına çift tıklayın. XAML işaretlemesini aşağıdaki kodla değiştirin:<?xml version="1.0" encoding="UTF-8" ?> <Shell x:Class="SignInMaui.AppShell" xmlns="http://schemas.microsoft.com/dotnet/2021/maui" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:local="clr-namespace:SignInMaui.Views" Shell.FlyoutBehavior="Disabled"> <ShellContent Title="Home" ContentTemplate="{DataTemplate local:MainView}" Route="MainPage" /> </Shell>
XAML kodu, açılır öğe davranışını devre dışı bırakıp, başlık
AppShell
olan veShellContent
sınıfına işaret eden bir içerik şablonuyla ana içeriğiHome
öğesine ayarlayan birMainView
sınıfını tanımlar.Visual Studio'nun Çözüm Gezgini bölmesinde, AppShell.xaml dosyasını genişleterek arka planda kod dosyasını AppShell.xaml.csaçın. AppShell.xaml.cs açın ve dosyanın içeriğini aşağıdaki kodla değiştirin:
// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. using SignInMaui.Views; namespace SignInMaui; public partial class AppShell : Shell { public AppShell() { InitializeComponent(); Routing.RegisterRoute("mainview", typeof(MainView)); Routing.RegisterRoute("claimsview", typeof(ClaimsView)); } }
AppShell.xaml.cs
dosyasınıMainView
veClaimsView
için gerekli yol kayıtlarını içerecek şekilde güncelleştirirsiniz.InitializeComponent()
yöntemini çağırarak,AppShell
sınıfının başlatılmasını sağlarsınız.RegisterRoute()
yöntemi,mainview
veclaimsview
yollarını ilgili görünüm türleri,MainView
veClaimsView
ile ilişkilendirir.
Platforma özgü kod ekleme
.NET MAUI uygulama projesi, .NET MAUI'nin hedefleyebilecekleri bir platformu temsil eden her alt klasörün bulunduğu bir Platformlar klasörü içerir. Varsayılan uygulama sınıfını desteklemek üzere Android uygulamasına özgü davranış sağlamak için şu adımları izleyin:
XML düzenleyicisini açmak için
Platforms/Android/AndroidManifest.xml
bölmesinde dosyasına çift tıklayın. Aşağıdaki özellikleri güncelleştirin:- Uygulama adıMAUI CIAMolarak ayarlayın.
- Paket adı'i SignInMaui.Droidolarak ayarlayın.
- En düşük Android sürümünü Android 5.0 (API düzeyi 21)olarak ayarlayın.
csharp düzenleyicisini açmak için
Platforms/Android/MainActivity.cs
bölmesinde dosyasına çift tıklayın. Dosyanın içeriğini aşağıdaki kodla değiştirin:// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. using Android.App; using Android.Content; using Android.Content.PM; using Android.OS; using SignInMaui.MSALClient; using Microsoft.Identity.Client; namespace SignInMaui; [Activity(Theme = "@style/Maui.SplashTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize | ConfigChanges.Density)] public class MainActivity : MauiAppCompatActivity { protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); // configure platform specific params PlatformConfig.Instance.RedirectUri = $"msal{PublicClientSingleton.Instance.MSALClientHelper.AzureAdConfig.ClientId}://auth"; PlatformConfig.Instance.ParentWindow = this; // Initialize MSAL and platformConfig is set _ = Task.Run(async () => await PublicClientSingleton.Instance.MSALClientHelper.InitializePublicClientAppAsync()).Result; } protected override void OnActivityResult(int requestCode, Result resultCode, Intent data) { base.OnActivityResult(requestCode, resultCode, data); AuthenticationContinuationHelper.SetAuthenticationContinuationEventArgs(requestCode, resultCode, data); } }
Şimdi eklediğiniz kodun önemli bölümlerini ayıralım:
- Gerekli
using
deyimleri en üste eklenir. -
MainActivity
sınıfı tanımlanır ve .NET MAUI'deki Android platformu için temel sınıf olanMauiAppCompatActivity
'den devralınır. - [Activity] özniteliği, Android etkinliği için çeşitli ayarlar belirterek
MainActivity
sınıfına uygulanır.-
Theme = "@style/Maui.SplashTheme"
etkinliğin giriş temasını ayarlar. -
MainLauncher = true
bu etkinliği uygulamanın ana giriş noktası olarak belirtir. -
ConfigurationChanges
, etkinliğin yönetebileceği yapılandırma değişikliklerini, örneğin ekran boyutu, yönlendirme, UI modu, ekran düzeni, en küçük ekran boyutuve yoğunlukolarak belirtir.
-
- etkinlik oluşturulurken özel mantık sağlamak için
OnCreate
yöntemi geçersiz kılınmıştır.-
base.OnCreate(savedInstanceState)
yönteminin temel uygulamasını çağırır. -
PlatformConfig.Instance.RedirectUri
,PublicClientSingleton.Instance.MSALClientHelper.AzureAdConfig.ClientId
temelinde dinamik olarak oluşturulan bir değere ayarlanır. MSAL istemcisi için yeniden yönlendirme URI'sini yapılandırıyor. -
PlatformConfig.Instance.ParentWindow
, kimlik doğrulamasıyla ilgili işlemlerde üst pencereyi belirten mevcut etkinlik örneğine ayarlanır. -
PublicClientSingleton.Instance.MSALClientHelper.InitializePublicClientAppAsync()
,MSALClientHelper
adlı tekil örnekten bir yardımcı yöntemi kullanarak MSAL istemci uygulamasını zaman uyumsuz olarak başlatır.Task.Run
, başlatmayı bir arka plan iş parçacığında yürütmek için kullanılır ve.Result
görevin tamamlanmasını zaman uyumlu bir şekilde beklemek için kullanılır.
-
- geçerli etkinlik tarafından başlatılan etkinliğin sonucunu işlemek için
OnActivityResult
yöntemi geçersiz kılındı.-
base.OnActivityResult(requestCode, resultCode, data)
yönteminin temel uygulamasını çağırır. -
AuthenticationContinuationHelper.SetAuthenticationContinuationEventArgs(requestCode, resultCode, data)
alınan istek koduna, sonuç koduna ve niyet verilerine göre kimlik doğrulama devamı etkinliği olayının bağımsız değişkenlerini ayarlar. Bu, bir dış etkinlik sonuç döndürdüğünde kimlik doğrulama akışına devam etmek için kullanılır.
-
- Gerekli
Visual Studio'nun Çözüm Gezgini bölmesinde Platformlaröğesini seçin.
Android klasörüne sağ tıklayın >Yeni>Öğe Ekle....
C# Öğelerini>Sınıfolarak seçin. dosyayı
MsalActivity.cs
olarak adlandırın.MsalActivity.cs
dosyasının içeriğini aşağıdaki kodla değiştirin:// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. using System; using System.Collections.Generic; using System.Linq; using System.Text; using Android.App; using Android.Content; using Android.OS; using Android.Runtime; using Android.Views; using Android.Widget; using Microsoft.Identity.Client; namespace MauiAppBasic.Platforms.Android.Resources { [Activity(Exported =true)] [IntentFilter(new[] { Intent.ActionView }, Categories = new[] { Intent.CategoryBrowsable, Intent.CategoryDefault }, DataHost = "auth", DataScheme = "msalEnter_the_Application_Id_Here")] public class MsalActivity : BrowserTabActivity { } }
Şimdi eklediğiniz kodun önemli bölümlerini ayıralım:
-
MsalActivity
sınıfıMauiAppBasic.Platforms.Android.Resources
ad alanında bildirilir.BrowserTabActivity
sınıfından devralınan bu sınıf, işlevselliğini genişlettiğini belirtir. - sınıfı, etkinliğin dışarı aktarıldığını ve diğer yöntemler tarafından erişilebileceğini belirten
[Activity(Exported = true)]
özniteliğiyle dekore edilmiştir. - "[IntentFilter(...)]" özniteliği kullanılarak bir amaç filtresi belirtilir. Etkinliği,
ActionView
amacını kesecek şekilde yapılandırıyor. - Amaç filtresi, belirtilen
ActionView
(DataScheme
) vemsalEnter_the_Application_Id_Here
("kimlik doğrulaması") ileDataHost
amacını işleyecek şekilde ayarlanır. Bu yapılandırma, etkinliğinActionView
amacını keserek ve işleyerek kimlik doğrulama işlemini işlemesine olanak tanır. Daha önce kaydettiğiniz uygulamanınEnter_the_Application_Id_Here
ile 'ı değiştirin.
-
Uygulama ayarları ekleme
Ayarlar, bir uygulamanın davranışını koddan yapılandıran verilerin ayrılmasına olanak tanıyarak davranışın uygulamayı yeniden oluşturmadan değiştirilmesini sağlar.
MauiAppBuilder
, .NET MAUI uygulamamızda ayarları yapılandırmak için ConfigurationManager
sağlar. şimdi appsettings.json
dosyasını EmbeddedResource
olarak ekleyelim.
appsettings.json
oluşturmak için şu adımları izleyin:
Visual Studio'nun Çözüm Gezgini bölmesinde, SignInMaui projesine sağ tıklayın >Yeni>Öğe Ekle....
Web>JavaScript JSON Yapılandırma Dosyası'nı seçin. dosyayı
appsettings.json
olarak adlandırın.Ekle'ı seçin.
appsettings.json seçin
Özellikler bölmesinde, Derleme EylemiGömülü kaynakolarak ayarlayın.
Özellikleri bölmesinde, Çıkış Dizinine Kopyala seçeneğini Her zaman kopyalaolarak ayarlayın.
appsettings.json
dosyasının içeriğini aşağıdaki kodla değiştirin:{ "AzureAd": { "Authority": "https://Enter_the_Tenant_Subdomain_Here.ciamlogin.com/", "ClientId": "Enter_the_Application_Id_Here", "CacheFileName": "msal_cache.txt", "CacheDir": "C:/temp" }, "DownstreamApi": { "Scopes": "openid offline_access" } }
appsettings.json
içinde, yer tutucuyu bulun:-
Enter_the_Tenant_Subdomain_Here
dizin (kiracı) alt alan adıyla değiştirin. Örneğin, kiracınızın birincil domainicontoso.onmicrosoft.com
isecontoso
kullanın. Eğer kiracı adınız yoksa, kiracı bilgilerinizi nasıl okuyacağınızı öğrenin. -
Enter_the_Application_Id_Here
ve daha önce kaydettiğiniz uygulamanın Uygulama (istemci) kimliğiyle değiştirin.
-
Özel URL alan adı kullanma (İsteğe bağlı)
Kimlik doğrulama URL'sini tamamen markalamak için özel bir etki alanı kullanın. Kullanıcı perspektifinden baktığımızda, kullanıcılar kimlik doğrulama işlemi sırasında ciamlogin.com yerine etki alanınızda kalmaya devam eder.
Özel etki alanı kullanmak için şu adımları izleyin:
Dış kiracınızda özel URL etki alanını etkinleştirmek dış kiracınızdaki uygulamalar için özel URL etki alanlarını etkinleştirme adımlarını kullanın.
appsettings.json dosyasını açın:
-
Authority
özelliğinin değerini https://Enter_the_Custom_Domain_Here/Enter_the_Tenant_ID_Hereolarak güncelleştirin.Enter_the_Custom_Domain_Here
, özel URL alanınızla veEnter_the_Tenant_ID_Here
, kiracı kimliğinizle değiştirin. Kiracı kimliğiniz yoksa, kiracı ayrıntılarınızı nasıl okuyacağınızı öğrenin. -
knownAuthorities
özelliğini, değerine sahip olacak şekilde [Enter_the_Custom_Domain_Here]olarak ekleyin.
-
appsettings.json dosyanızda değişiklik yaptıktan sonra, özel URL etki alanınız login.contoso.com iseve kiracı kimliğiniz aaaabbbb-0000-cccc-1111-dddd2222eeeeise, dosyanız aşağıdaki kod örneğine benzer şekilde olmalıdır:
{
"AzureAd": {
"Authority": "https://login.contoso.com/aaaabbbb-0000-cccc-1111-dddd2222eeee",
"ClientId": "Enter_the_Application_Id_Here",
"CacheFileName": "msal_cache.txt",
"CacheDir": "C:/temp",
"KnownAuthorities": ["login.contoso.com"]
},
"DownstreamApi": {
"Scopes": "openid offline_access"
}
}
.NET MAUI mobil uygulamasını çalıştırma ve test edin
.NET MAUI uygulamaları birden çok işletim sistemi ve cihazda çalışacak şekilde tasarlanmıştır. Uygulamanızı test etmek ve hatalarını ayıklamak istediğiniz hedefi seçmeniz gerekir.
Visual Studio araç çubuğundaki Hata Ayıklama Hedefi'i, hata ayıklamak ve test etmek istediğiniz cihaza ayarlayın. Aşağıdaki adımlarda, Hata Ayıklama Hedefi'ninAndroidolarak nasıl ayarlanacağı gösterilmektedir.
- Hata Ayıklama Hedefi açılan listesini seçin.
- Android ÖykünücüleriSeçin.
- Öykünücü cihazı seçin.
F5 basarak uygulamayı çalıştırın veya Visual Studio'nun üst kısmındaki oynat düğmesini seçin.
Artık örnek .NET MAUI Android uygulamasını test edebilirsiniz. Uygulamayı çalıştırdıktan sonra, Android uygulama penceresi emülatörde görünür.
Görüntülenen Android penceresinde Oturum Aç düğmesini seçin. Bir tarayıcı penceresi açılır ve oturum açmanız istenir.
Oturum açma işlemi sırasında, çeşitli izinler vermeniz istenir (uygulamanın verilerinize erişmesine izin vermek için). Başarılı oturum açma ve onay sonrasında uygulama ekranı ana sayfayı görüntüler.
Ayrıca bkz.
- Varsayılan markalamaözelleştirin.
- Googleile oturum açmayı yapılandırma.