diff --git a/various/clients/Maui/MauiApp1/MauiApp1.sln b/various/clients/Maui/net10/MauiApp1.sln
similarity index 100%
rename from various/clients/Maui/MauiApp1/MauiApp1.sln
rename to various/clients/Maui/net10/MauiApp1.sln
diff --git a/various/clients/Maui/MauiApp1/MauiApp1/App.xaml b/various/clients/Maui/net10/MauiApp1/App.xaml
similarity index 100%
rename from various/clients/Maui/MauiApp1/MauiApp1/App.xaml
rename to various/clients/Maui/net10/MauiApp1/App.xaml
diff --git a/various/clients/Maui/MauiApp1/MauiApp1/App.xaml.cs b/various/clients/Maui/net10/MauiApp1/App.xaml.cs
similarity index 100%
rename from various/clients/Maui/MauiApp1/MauiApp1/App.xaml.cs
rename to various/clients/Maui/net10/MauiApp1/App.xaml.cs
diff --git a/various/clients/Maui/MauiApp1/MauiApp1/AppShell.xaml b/various/clients/Maui/net10/MauiApp1/AppShell.xaml
similarity index 100%
rename from various/clients/Maui/MauiApp1/MauiApp1/AppShell.xaml
rename to various/clients/Maui/net10/MauiApp1/AppShell.xaml
diff --git a/various/clients/Maui/MauiApp1/MauiApp1/AppShell.xaml.cs b/various/clients/Maui/net10/MauiApp1/AppShell.xaml.cs
similarity index 100%
rename from various/clients/Maui/MauiApp1/MauiApp1/AppShell.xaml.cs
rename to various/clients/Maui/net10/MauiApp1/AppShell.xaml.cs
diff --git a/various/clients/Maui/MauiApp1/MauiApp1/MainPage.xaml b/various/clients/Maui/net10/MauiApp1/MainPage.xaml
similarity index 100%
rename from various/clients/Maui/MauiApp1/MauiApp1/MainPage.xaml
rename to various/clients/Maui/net10/MauiApp1/MainPage.xaml
diff --git a/various/clients/Maui/MauiApp1/MauiApp1/MainPage.xaml.cs b/various/clients/Maui/net10/MauiApp1/MainPage.xaml.cs
similarity index 100%
rename from various/clients/Maui/MauiApp1/MauiApp1/MainPage.xaml.cs
rename to various/clients/Maui/net10/MauiApp1/MainPage.xaml.cs
diff --git a/various/clients/Maui/net10/MauiApp1/MauiApp1.csproj b/various/clients/Maui/net10/MauiApp1/MauiApp1.csproj
new file mode 100644
index 00000000..f2374486
--- /dev/null
+++ b/various/clients/Maui/net10/MauiApp1/MauiApp1.csproj
@@ -0,0 +1,69 @@
+
+
+
+ net10.0-android;net10.0-ios;net10.0-maccatalyst
+ $(TargetFrameworks);net10.0-windows10.0.19041.0
+
+
+
+
+ Exe
+ MauiApp1
+ true
+ true
+ enable
+ enable
+
+ NU1608
+ true
+
+
+ MauiApp1
+
+
+ com.companyname.mauiapp1
+
+
+ 1.0
+ 1
+
+
+ None
+
+ 15.0
+ 15.0
+ 21.0
+ 10.0.17763.0
+ 10.0.17763.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/various/clients/Maui/net10/MauiApp1/MauiAuthenticationBrowser.cs b/various/clients/Maui/net10/MauiApp1/MauiAuthenticationBrowser.cs
new file mode 100644
index 00000000..45e98c57
--- /dev/null
+++ b/various/clients/Maui/net10/MauiApp1/MauiAuthenticationBrowser.cs
@@ -0,0 +1,34 @@
+using Duende.IdentityModel.Client;
+using Duende.IdentityModel.OidcClient.Browser;
+
+namespace MauiApp1;
+
+public class MauiAuthenticationBrowser : Duende.IdentityModel.OidcClient.Browser.IBrowser
+{
+ public async Task InvokeAsync(BrowserOptions options, CancellationToken cancellationToken = default)
+ {
+ try
+ {
+ var result = await WebAuthenticator.Default.AuthenticateAsync(
+ new Uri(options.StartUrl),
+ new Uri(options.EndUrl),
+ cancellationToken);
+
+ var url = new RequestUrl("myapp://callback")
+ .Create(new Parameters(result.Properties));
+
+ return new BrowserResult
+ {
+ Response = url,
+ ResultType = BrowserResultType.Success,
+ };
+ }
+ catch (TaskCanceledException)
+ {
+ return new BrowserResult
+ {
+ ResultType = BrowserResultType.UserCancel
+ };
+ }
+ }
+}
diff --git a/various/clients/Maui/net10/MauiApp1/MauiProgram.cs b/various/clients/Maui/net10/MauiApp1/MauiProgram.cs
new file mode 100644
index 00000000..a5bc2ad8
--- /dev/null
+++ b/various/clients/Maui/net10/MauiApp1/MauiProgram.cs
@@ -0,0 +1,43 @@
+// Copyright (c) Duende Software. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using Duende.IdentityModel.OidcClient;
+using Microsoft.Extensions.Logging;
+
+namespace MauiApp1;
+public static class MauiProgram
+{
+ public static MauiApp CreateMauiApp()
+ {
+ var builder = MauiApp.CreateBuilder();
+ builder
+ .UseMauiApp()
+ .ConfigureFonts(fonts =>
+ {
+ fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
+ fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
+ });
+
+#if DEBUG
+ builder.Logging.AddDebug();
+ builder.Services.AddLogging(configure => configure.AddDebug());
+#endif
+
+ // setup OidcClient
+ builder.Services.AddSingleton(new OidcClient(new()
+ {
+ Authority = "https://demo.duendesoftware.com",
+
+ ClientId = "interactive.public",
+ Scope = "openid profile api",
+ RedirectUri = "myapp://callback",
+
+ Browser = new MauiAuthenticationBrowser()
+ }));
+
+ // add main page
+ builder.Services.AddSingleton();
+
+ return builder.Build();
+ }
+}
diff --git a/various/clients/Maui/MauiApp1/MauiApp1/Platforms/Android/AndroidManifest.xml b/various/clients/Maui/net10/MauiApp1/Platforms/Android/AndroidManifest.xml
similarity index 100%
rename from various/clients/Maui/MauiApp1/MauiApp1/Platforms/Android/AndroidManifest.xml
rename to various/clients/Maui/net10/MauiApp1/Platforms/Android/AndroidManifest.xml
diff --git a/various/clients/Maui/MauiApp1/MauiApp1/Platforms/Android/MainActivity.cs b/various/clients/Maui/net10/MauiApp1/Platforms/Android/MainActivity.cs
similarity index 100%
rename from various/clients/Maui/MauiApp1/MauiApp1/Platforms/Android/MainActivity.cs
rename to various/clients/Maui/net10/MauiApp1/Platforms/Android/MainActivity.cs
diff --git a/various/clients/Maui/MauiApp1/MauiApp1/Platforms/Android/MainApplication.cs b/various/clients/Maui/net10/MauiApp1/Platforms/Android/MainApplication.cs
similarity index 100%
rename from various/clients/Maui/MauiApp1/MauiApp1/Platforms/Android/MainApplication.cs
rename to various/clients/Maui/net10/MauiApp1/Platforms/Android/MainApplication.cs
diff --git a/various/clients/Maui/MauiApp1/MauiApp1/Platforms/Android/Resources/values/colors.xml b/various/clients/Maui/net10/MauiApp1/Platforms/Android/Resources/values/colors.xml
similarity index 100%
rename from various/clients/Maui/MauiApp1/MauiApp1/Platforms/Android/Resources/values/colors.xml
rename to various/clients/Maui/net10/MauiApp1/Platforms/Android/Resources/values/colors.xml
diff --git a/various/clients/Maui/MauiApp1/MauiApp1/Platforms/Android/WebAuthenticationCallbackActivity.cs b/various/clients/Maui/net10/MauiApp1/Platforms/Android/WebAuthenticationCallbackActivity.cs
similarity index 100%
rename from various/clients/Maui/MauiApp1/MauiApp1/Platforms/Android/WebAuthenticationCallbackActivity.cs
rename to various/clients/Maui/net10/MauiApp1/Platforms/Android/WebAuthenticationCallbackActivity.cs
diff --git a/various/clients/Maui/MauiApp1/MauiApp1/Platforms/MacCatalyst/AppDelegate.cs b/various/clients/Maui/net10/MauiApp1/Platforms/MacCatalyst/AppDelegate.cs
similarity index 100%
rename from various/clients/Maui/MauiApp1/MauiApp1/Platforms/MacCatalyst/AppDelegate.cs
rename to various/clients/Maui/net10/MauiApp1/Platforms/MacCatalyst/AppDelegate.cs
diff --git a/various/clients/Maui/MauiApp1/MauiApp1/Platforms/MacCatalyst/Entitlements.plist b/various/clients/Maui/net10/MauiApp1/Platforms/MacCatalyst/Entitlements.plist
similarity index 100%
rename from various/clients/Maui/MauiApp1/MauiApp1/Platforms/MacCatalyst/Entitlements.plist
rename to various/clients/Maui/net10/MauiApp1/Platforms/MacCatalyst/Entitlements.plist
diff --git a/various/clients/Maui/MauiApp1/MauiApp1/Platforms/MacCatalyst/Info.plist b/various/clients/Maui/net10/MauiApp1/Platforms/MacCatalyst/Info.plist
similarity index 100%
rename from various/clients/Maui/MauiApp1/MauiApp1/Platforms/MacCatalyst/Info.plist
rename to various/clients/Maui/net10/MauiApp1/Platforms/MacCatalyst/Info.plist
diff --git a/various/clients/Maui/MauiApp1/MauiApp1/Platforms/MacCatalyst/Program.cs b/various/clients/Maui/net10/MauiApp1/Platforms/MacCatalyst/Program.cs
similarity index 100%
rename from various/clients/Maui/MauiApp1/MauiApp1/Platforms/MacCatalyst/Program.cs
rename to various/clients/Maui/net10/MauiApp1/Platforms/MacCatalyst/Program.cs
diff --git a/various/clients/Maui/MauiApp1/MauiApp1/Platforms/Tizen/Main.cs b/various/clients/Maui/net10/MauiApp1/Platforms/Tizen/Main.cs
similarity index 100%
rename from various/clients/Maui/MauiApp1/MauiApp1/Platforms/Tizen/Main.cs
rename to various/clients/Maui/net10/MauiApp1/Platforms/Tizen/Main.cs
diff --git a/various/clients/Maui/MauiApp1/MauiApp1/Platforms/Tizen/tizen-manifest.xml b/various/clients/Maui/net10/MauiApp1/Platforms/Tizen/tizen-manifest.xml
similarity index 100%
rename from various/clients/Maui/MauiApp1/MauiApp1/Platforms/Tizen/tizen-manifest.xml
rename to various/clients/Maui/net10/MauiApp1/Platforms/Tizen/tizen-manifest.xml
diff --git a/various/clients/Maui/MauiApp1/MauiApp1/Platforms/Windows/App.xaml b/various/clients/Maui/net10/MauiApp1/Platforms/Windows/App.xaml
similarity index 100%
rename from various/clients/Maui/MauiApp1/MauiApp1/Platforms/Windows/App.xaml
rename to various/clients/Maui/net10/MauiApp1/Platforms/Windows/App.xaml
diff --git a/various/clients/Maui/MauiApp1/MauiApp1/Platforms/Windows/App.xaml.cs b/various/clients/Maui/net10/MauiApp1/Platforms/Windows/App.xaml.cs
similarity index 100%
rename from various/clients/Maui/MauiApp1/MauiApp1/Platforms/Windows/App.xaml.cs
rename to various/clients/Maui/net10/MauiApp1/Platforms/Windows/App.xaml.cs
diff --git a/various/clients/Maui/MauiApp1/MauiApp1/Platforms/Windows/Package.appxmanifest b/various/clients/Maui/net10/MauiApp1/Platforms/Windows/Package.appxmanifest
similarity index 100%
rename from various/clients/Maui/MauiApp1/MauiApp1/Platforms/Windows/Package.appxmanifest
rename to various/clients/Maui/net10/MauiApp1/Platforms/Windows/Package.appxmanifest
diff --git a/various/clients/Maui/MauiApp1/MauiApp1/Platforms/Windows/app.manifest b/various/clients/Maui/net10/MauiApp1/Platforms/Windows/app.manifest
similarity index 100%
rename from various/clients/Maui/MauiApp1/MauiApp1/Platforms/Windows/app.manifest
rename to various/clients/Maui/net10/MauiApp1/Platforms/Windows/app.manifest
diff --git a/various/clients/Maui/MauiApp1/MauiApp1/Platforms/iOS/AppDelegate.cs b/various/clients/Maui/net10/MauiApp1/Platforms/iOS/AppDelegate.cs
similarity index 100%
rename from various/clients/Maui/MauiApp1/MauiApp1/Platforms/iOS/AppDelegate.cs
rename to various/clients/Maui/net10/MauiApp1/Platforms/iOS/AppDelegate.cs
diff --git a/various/clients/Maui/MauiApp1/MauiApp1/Platforms/iOS/Info.plist b/various/clients/Maui/net10/MauiApp1/Platforms/iOS/Info.plist
similarity index 100%
rename from various/clients/Maui/MauiApp1/MauiApp1/Platforms/iOS/Info.plist
rename to various/clients/Maui/net10/MauiApp1/Platforms/iOS/Info.plist
diff --git a/various/clients/Maui/MauiApp1/MauiApp1/Platforms/iOS/Program.cs b/various/clients/Maui/net10/MauiApp1/Platforms/iOS/Program.cs
similarity index 100%
rename from various/clients/Maui/MauiApp1/MauiApp1/Platforms/iOS/Program.cs
rename to various/clients/Maui/net10/MauiApp1/Platforms/iOS/Program.cs
diff --git a/various/clients/Maui/MauiApp1/MauiApp1/Properties/launchSettings.json b/various/clients/Maui/net10/MauiApp1/Properties/launchSettings.json
similarity index 100%
rename from various/clients/Maui/MauiApp1/MauiApp1/Properties/launchSettings.json
rename to various/clients/Maui/net10/MauiApp1/Properties/launchSettings.json
diff --git a/various/clients/Maui/MauiApp1/MauiApp1/Resources/AppIcon/appicon.svg b/various/clients/Maui/net10/MauiApp1/Resources/AppIcon/appicon.svg
similarity index 100%
rename from various/clients/Maui/MauiApp1/MauiApp1/Resources/AppIcon/appicon.svg
rename to various/clients/Maui/net10/MauiApp1/Resources/AppIcon/appicon.svg
diff --git a/various/clients/Maui/MauiApp1/MauiApp1/Resources/AppIcon/appiconfg.svg b/various/clients/Maui/net10/MauiApp1/Resources/AppIcon/appiconfg.svg
similarity index 100%
rename from various/clients/Maui/MauiApp1/MauiApp1/Resources/AppIcon/appiconfg.svg
rename to various/clients/Maui/net10/MauiApp1/Resources/AppIcon/appiconfg.svg
diff --git a/various/clients/Maui/MauiApp1/MauiApp1/Resources/Fonts/OpenSans-Regular.ttf b/various/clients/Maui/net10/MauiApp1/Resources/Fonts/OpenSans-Regular.ttf
similarity index 100%
rename from various/clients/Maui/MauiApp1/MauiApp1/Resources/Fonts/OpenSans-Regular.ttf
rename to various/clients/Maui/net10/MauiApp1/Resources/Fonts/OpenSans-Regular.ttf
diff --git a/various/clients/Maui/MauiApp1/MauiApp1/Resources/Fonts/OpenSans-Semibold.ttf b/various/clients/Maui/net10/MauiApp1/Resources/Fonts/OpenSans-Semibold.ttf
similarity index 100%
rename from various/clients/Maui/MauiApp1/MauiApp1/Resources/Fonts/OpenSans-Semibold.ttf
rename to various/clients/Maui/net10/MauiApp1/Resources/Fonts/OpenSans-Semibold.ttf
diff --git a/various/clients/Maui/MauiApp1/MauiApp1/Resources/Images/dotnet_bot.png b/various/clients/Maui/net10/MauiApp1/Resources/Images/dotnet_bot.png
similarity index 100%
rename from various/clients/Maui/MauiApp1/MauiApp1/Resources/Images/dotnet_bot.png
rename to various/clients/Maui/net10/MauiApp1/Resources/Images/dotnet_bot.png
diff --git a/various/clients/Maui/MauiApp1/MauiApp1/Resources/Raw/AboutAssets.txt b/various/clients/Maui/net10/MauiApp1/Resources/Raw/AboutAssets.txt
similarity index 100%
rename from various/clients/Maui/MauiApp1/MauiApp1/Resources/Raw/AboutAssets.txt
rename to various/clients/Maui/net10/MauiApp1/Resources/Raw/AboutAssets.txt
diff --git a/various/clients/Maui/MauiApp1/MauiApp1/Resources/Splash/splash.svg b/various/clients/Maui/net10/MauiApp1/Resources/Splash/splash.svg
similarity index 100%
rename from various/clients/Maui/MauiApp1/MauiApp1/Resources/Splash/splash.svg
rename to various/clients/Maui/net10/MauiApp1/Resources/Splash/splash.svg
diff --git a/various/clients/Maui/MauiApp1/MauiApp1/Resources/Styles/Colors.xaml b/various/clients/Maui/net10/MauiApp1/Resources/Styles/Colors.xaml
similarity index 100%
rename from various/clients/Maui/MauiApp1/MauiApp1/Resources/Styles/Colors.xaml
rename to various/clients/Maui/net10/MauiApp1/Resources/Styles/Colors.xaml
diff --git a/various/clients/Maui/MauiApp1/MauiApp1/Resources/Styles/Styles.xaml b/various/clients/Maui/net10/MauiApp1/Resources/Styles/Styles.xaml
similarity index 100%
rename from various/clients/Maui/MauiApp1/MauiApp1/Resources/Styles/Styles.xaml
rename to various/clients/Maui/net10/MauiApp1/Resources/Styles/Styles.xaml
diff --git a/various/clients/Maui/net9/MauiApp1.sln b/various/clients/Maui/net9/MauiApp1.sln
new file mode 100644
index 00000000..01c69d07
--- /dev/null
+++ b/various/clients/Maui/net9/MauiApp1.sln
@@ -0,0 +1,27 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.8.34322.80
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MauiApp1", "MauiApp1\MauiApp1.csproj", "{F47CF5D7-9D19-48C1-9AC3-0F26B4133D92}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {F47CF5D7-9D19-48C1-9AC3-0F26B4133D92}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F47CF5D7-9D19-48C1-9AC3-0F26B4133D92}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F47CF5D7-9D19-48C1-9AC3-0F26B4133D92}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
+ {F47CF5D7-9D19-48C1-9AC3-0F26B4133D92}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F47CF5D7-9D19-48C1-9AC3-0F26B4133D92}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F47CF5D7-9D19-48C1-9AC3-0F26B4133D92}.Release|Any CPU.Deploy.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {CF4F4884-6B6D-4CA0-9BD0-FCD86EFD26F4}
+ EndGlobalSection
+EndGlobal
diff --git a/various/clients/Maui/net9/MauiApp1/App.xaml b/various/clients/Maui/net9/MauiApp1/App.xaml
new file mode 100644
index 00000000..8fb5f38c
--- /dev/null
+++ b/various/clients/Maui/net9/MauiApp1/App.xaml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/various/clients/Maui/net9/MauiApp1/App.xaml.cs b/various/clients/Maui/net9/MauiApp1/App.xaml.cs
new file mode 100644
index 00000000..d1708ffe
--- /dev/null
+++ b/various/clients/Maui/net9/MauiApp1/App.xaml.cs
@@ -0,0 +1,9 @@
+
+namespace MauiApp1;
+
+public partial class App : Application
+{
+ public App() => InitializeComponent();
+
+ protected override Window CreateWindow(IActivationState? activationState) => new Window(new AppShell());
+}
diff --git a/various/clients/Maui/net9/MauiApp1/AppShell.xaml b/various/clients/Maui/net9/MauiApp1/AppShell.xaml
new file mode 100644
index 00000000..5dd865e4
--- /dev/null
+++ b/various/clients/Maui/net9/MauiApp1/AppShell.xaml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
diff --git a/various/clients/Maui/net9/MauiApp1/AppShell.xaml.cs b/various/clients/Maui/net9/MauiApp1/AppShell.xaml.cs
new file mode 100644
index 00000000..c9116c8e
--- /dev/null
+++ b/various/clients/Maui/net9/MauiApp1/AppShell.xaml.cs
@@ -0,0 +1,9 @@
+namespace MauiApp1;
+
+public partial class AppShell : Shell
+{
+ public AppShell()
+ {
+ InitializeComponent();
+ }
+}
diff --git a/various/clients/Maui/net9/MauiApp1/MainPage.xaml b/various/clients/Maui/net9/MauiApp1/MainPage.xaml
new file mode 100644
index 00000000..58a7aa4a
--- /dev/null
+++ b/various/clients/Maui/net9/MauiApp1/MainPage.xaml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/various/clients/Maui/net9/MauiApp1/MainPage.xaml.cs b/various/clients/Maui/net9/MauiApp1/MainPage.xaml.cs
new file mode 100644
index 00000000..5093ab9f
--- /dev/null
+++ b/various/clients/Maui/net9/MauiApp1/MainPage.xaml.cs
@@ -0,0 +1,79 @@
+using Duende.IdentityModel.Client;
+using Duende.IdentityModel.OidcClient;
+using System.Text;
+using System.Text.Json;
+
+namespace MauiApp1;
+
+public partial class MainPage : ContentPage
+{
+ private readonly OidcClient _client = default!;
+ private string? _currentAccessToken;
+
+ public MainPage(OidcClient client)
+ {
+ InitializeComponent();
+
+ _client = client;
+ }
+
+ private async void OnLoginClicked(object sender, EventArgs e)
+ {
+ editor.Text = "Login Clicked";
+
+ var result = await _client.LoginAsync();
+
+ if (result.IsError)
+ {
+ editor.Text = result.Error;
+ return;
+ }
+
+ _currentAccessToken = result.AccessToken;
+
+ var sb = new StringBuilder(128);
+
+ sb.AppendLine("claims:");
+ foreach (var claim in result.User.Claims)
+ {
+ sb.AppendLine($"{claim.Type}: {claim.Value}");
+ }
+
+ sb.AppendLine();
+ sb.AppendLine("access token:");
+ sb.AppendLine(result.AccessToken);
+
+ if (!string.IsNullOrWhiteSpace(result.RefreshToken))
+ {
+ sb.AppendLine();
+ sb.AppendLine("access token:");
+ sb.AppendLine(result.AccessToken);
+ }
+
+ editor.Text = sb.ToString();
+ }
+
+ private async void OnApiClicked(object sender, EventArgs e)
+ {
+ editor.Text = "API Clicked";
+
+ if (_currentAccessToken != null)
+ {
+ var client = new HttpClient();
+ client.SetBearerToken(_currentAccessToken);
+
+ var response = await client.GetAsync("https://demo.duendesoftware.com/api/test");
+ if (response.IsSuccessStatusCode)
+ {
+ var content = await response.Content.ReadAsStringAsync();
+ var doc = JsonDocument.Parse(content).RootElement;
+ editor.Text = JsonSerializer.Serialize(doc, new JsonSerializerOptions { WriteIndented = true });
+ }
+ else
+ {
+ editor.Text = response.ReasonPhrase;
+ }
+ }
+ }
+}
+
diff --git a/various/clients/Maui/MauiApp1/MauiApp1/MauiApp1.csproj b/various/clients/Maui/net9/MauiApp1/MauiApp1.csproj
similarity index 100%
rename from various/clients/Maui/MauiApp1/MauiApp1/MauiApp1.csproj
rename to various/clients/Maui/net9/MauiApp1/MauiApp1.csproj
diff --git a/various/clients/Maui/MauiApp1/MauiApp1/MauiAuthenticationBrowser.cs b/various/clients/Maui/net9/MauiApp1/MauiAuthenticationBrowser.cs
similarity index 100%
rename from various/clients/Maui/MauiApp1/MauiApp1/MauiAuthenticationBrowser.cs
rename to various/clients/Maui/net9/MauiApp1/MauiAuthenticationBrowser.cs
diff --git a/various/clients/Maui/MauiApp1/MauiApp1/MauiProgram.cs b/various/clients/Maui/net9/MauiApp1/MauiProgram.cs
similarity index 100%
rename from various/clients/Maui/MauiApp1/MauiApp1/MauiProgram.cs
rename to various/clients/Maui/net9/MauiApp1/MauiProgram.cs
diff --git a/various/clients/Maui/net9/MauiApp1/Platforms/Android/AndroidManifest.xml b/various/clients/Maui/net9/MauiApp1/Platforms/Android/AndroidManifest.xml
new file mode 100644
index 00000000..d1176ad2
--- /dev/null
+++ b/various/clients/Maui/net9/MauiApp1/Platforms/Android/AndroidManifest.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/various/clients/Maui/net9/MauiApp1/Platforms/Android/MainActivity.cs b/various/clients/Maui/net9/MauiApp1/Platforms/Android/MainActivity.cs
new file mode 100644
index 00000000..5587d8e8
--- /dev/null
+++ b/various/clients/Maui/net9/MauiApp1/Platforms/Android/MainActivity.cs
@@ -0,0 +1,11 @@
+// Copyright (c) Duende Software. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using Android.App;
+using Android.Content.PM;
+
+namespace MauiApp1;
+[Activity(Theme = "@style/Maui.SplashTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize | ConfigChanges.Density)]
+public class MainActivity : MauiAppCompatActivity
+{
+}
diff --git a/various/clients/Maui/net9/MauiApp1/Platforms/Android/MainApplication.cs b/various/clients/Maui/net9/MauiApp1/Platforms/Android/MainApplication.cs
new file mode 100644
index 00000000..01666cb3
--- /dev/null
+++ b/various/clients/Maui/net9/MauiApp1/Platforms/Android/MainApplication.cs
@@ -0,0 +1,17 @@
+// Copyright (c) Duende Software. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using Android.App;
+using Android.Runtime;
+
+namespace MauiApp1;
+[Application]
+public class MainApplication : MauiApplication
+{
+ public MainApplication(IntPtr handle, JniHandleOwnership ownership)
+ : base(handle, ownership)
+ {
+ }
+
+ protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
+}
diff --git a/various/clients/Maui/net9/MauiApp1/Platforms/Android/Resources/values/colors.xml b/various/clients/Maui/net9/MauiApp1/Platforms/Android/Resources/values/colors.xml
new file mode 100644
index 00000000..c04d7492
--- /dev/null
+++ b/various/clients/Maui/net9/MauiApp1/Platforms/Android/Resources/values/colors.xml
@@ -0,0 +1,6 @@
+
+
+ #512BD4
+ #2B0B98
+ #2B0B98
+
\ No newline at end of file
diff --git a/various/clients/Maui/net9/MauiApp1/Platforms/Android/WebAuthenticationCallbackActivity.cs b/various/clients/Maui/net9/MauiApp1/Platforms/Android/WebAuthenticationCallbackActivity.cs
new file mode 100644
index 00000000..c2d2ebf8
--- /dev/null
+++ b/various/clients/Maui/net9/MauiApp1/Platforms/Android/WebAuthenticationCallbackActivity.cs
@@ -0,0 +1,17 @@
+// Copyright (c) Duende Software. All rights reserved.
+// Licensed under the MIT License. See LICENSE in the project root for license information.
+
+using Android.App;
+using Android.Content.PM;
+
+namespace YourNameSpace;
+
+[Activity(NoHistory = true, LaunchMode = LaunchMode.SingleTop, Exported = true)]
+[IntentFilter(new[] { Android.Content.Intent.ActionView },
+ Categories = new[] { Android.Content.Intent.CategoryDefault, Android.Content.Intent.CategoryBrowsable },
+ DataScheme = CALLBACK_SCHEME)]
+public class WebAuthenticationCallbackActivity : Microsoft.Maui.Authentication.WebAuthenticatorCallbackActivity
+{
+ const string CALLBACK_SCHEME = "myapp";
+
+}
diff --git a/various/clients/Maui/net9/MauiApp1/Platforms/MacCatalyst/AppDelegate.cs b/various/clients/Maui/net9/MauiApp1/Platforms/MacCatalyst/AppDelegate.cs
new file mode 100644
index 00000000..e3dcc331
--- /dev/null
+++ b/various/clients/Maui/net9/MauiApp1/Platforms/MacCatalyst/AppDelegate.cs
@@ -0,0 +1,8 @@
+using Foundation;
+
+namespace MauiApp1;
+[Register("AppDelegate")]
+public class AppDelegate : MauiUIApplicationDelegate
+{
+ protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
+}
diff --git a/various/clients/Maui/net9/MauiApp1/Platforms/MacCatalyst/Entitlements.plist b/various/clients/Maui/net9/MauiApp1/Platforms/MacCatalyst/Entitlements.plist
new file mode 100644
index 00000000..de4adc94
--- /dev/null
+++ b/various/clients/Maui/net9/MauiApp1/Platforms/MacCatalyst/Entitlements.plist
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+ com.apple.security.app-sandbox
+
+
+ com.apple.security.network.client
+
+
+
+
diff --git a/various/clients/Maui/net9/MauiApp1/Platforms/MacCatalyst/Info.plist b/various/clients/Maui/net9/MauiApp1/Platforms/MacCatalyst/Info.plist
new file mode 100644
index 00000000..53e4316f
--- /dev/null
+++ b/various/clients/Maui/net9/MauiApp1/Platforms/MacCatalyst/Info.plist
@@ -0,0 +1,45 @@
+
+
+
+
+
+ CFBundleURLTypes
+
+
+ CFBundleURLName
+ My App
+ CFBundleURLSchemes
+
+ myapp
+
+ CFBundleTypeRole
+ Editor
+
+
+
+ UIDeviceFamily
+
+ 1
+ 2
+
+ UIRequiredDeviceCapabilities
+
+ arm64
+
+ UISupportedInterfaceOrientations
+
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+ UISupportedInterfaceOrientations~ipad
+
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationPortraitUpsideDown
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+ XSAppIconAssets
+ Assets.xcassets/appicon.appiconset
+
+
diff --git a/various/clients/Maui/net9/MauiApp1/Platforms/MacCatalyst/Program.cs b/various/clients/Maui/net9/MauiApp1/Platforms/MacCatalyst/Program.cs
new file mode 100644
index 00000000..615bcbb1
--- /dev/null
+++ b/various/clients/Maui/net9/MauiApp1/Platforms/MacCatalyst/Program.cs
@@ -0,0 +1,14 @@
+using ObjCRuntime;
+using UIKit;
+
+namespace MauiApp1;
+public class Program
+{
+ // This is the main entry point of the application.
+ static void Main(string[] args)
+ {
+ // if you want to use a different Application Delegate class from "AppDelegate"
+ // you can specify it here.
+ UIApplication.Main(args, null, typeof(AppDelegate));
+ }
+}
diff --git a/various/clients/Maui/net9/MauiApp1/Platforms/Tizen/Main.cs b/various/clients/Maui/net9/MauiApp1/Platforms/Tizen/Main.cs
new file mode 100644
index 00000000..d0447bd6
--- /dev/null
+++ b/various/clients/Maui/net9/MauiApp1/Platforms/Tizen/Main.cs
@@ -0,0 +1,16 @@
+using Microsoft.Maui;
+using Microsoft.Maui.Hosting;
+using System;
+
+namespace MauiApp1;
+
+internal class Program : MauiApplication
+{
+ protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
+
+ static void Main(string[] args)
+ {
+ var app = new Program();
+ app.Run(args);
+ }
+}
diff --git a/various/clients/Maui/net9/MauiApp1/Platforms/Tizen/tizen-manifest.xml b/various/clients/Maui/net9/MauiApp1/Platforms/Tizen/tizen-manifest.xml
new file mode 100644
index 00000000..eda2ec7e
--- /dev/null
+++ b/various/clients/Maui/net9/MauiApp1/Platforms/Tizen/tizen-manifest.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+ maui-appicon-placeholder
+
+
+
+
+ http://tizen.org/privilege/internet
+
+
+
+
\ No newline at end of file
diff --git a/various/clients/Maui/net9/MauiApp1/Platforms/Windows/App.xaml b/various/clients/Maui/net9/MauiApp1/Platforms/Windows/App.xaml
new file mode 100644
index 00000000..4cf22441
--- /dev/null
+++ b/various/clients/Maui/net9/MauiApp1/Platforms/Windows/App.xaml
@@ -0,0 +1,8 @@
+
+
+
diff --git a/various/clients/Maui/net9/MauiApp1/Platforms/Windows/App.xaml.cs b/various/clients/Maui/net9/MauiApp1/Platforms/Windows/App.xaml.cs
new file mode 100644
index 00000000..dcfc3197
--- /dev/null
+++ b/various/clients/Maui/net9/MauiApp1/Platforms/Windows/App.xaml.cs
@@ -0,0 +1,23 @@
+using Microsoft.UI.Xaml;
+
+// To learn more about WinUI, the WinUI project structure,
+// and more about our project templates, see: http://aka.ms/winui-project-info.
+
+namespace MauiApp1.WinUI;
+///
+/// Provides application-specific behavior to supplement the default Application class.
+///
+public partial class App : MauiWinUIApplication
+{
+ ///
+ /// Initializes the singleton application object. This is the first line of authored code
+ /// executed, and as such is the logical equivalent of main() or WinMain().
+ ///
+ public App()
+ {
+ this.InitializeComponent();
+ }
+
+ protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
+}
+
diff --git a/various/clients/Maui/net9/MauiApp1/Platforms/Windows/Package.appxmanifest b/various/clients/Maui/net9/MauiApp1/Platforms/Windows/Package.appxmanifest
new file mode 100644
index 00000000..edde00a7
--- /dev/null
+++ b/various/clients/Maui/net9/MauiApp1/Platforms/Windows/Package.appxmanifest
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+ $placeholder$
+ User Name
+ $placeholder$.png
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Oidc Sample App
+
+
+
+
+
+
+
+
+
+
+
diff --git a/various/clients/Maui/net9/MauiApp1/Platforms/Windows/app.manifest b/various/clients/Maui/net9/MauiApp1/Platforms/Windows/app.manifest
new file mode 100644
index 00000000..2da12c4c
--- /dev/null
+++ b/various/clients/Maui/net9/MauiApp1/Platforms/Windows/app.manifest
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+ true/PM
+ PerMonitorV2, PerMonitor
+
+
+
diff --git a/various/clients/Maui/net9/MauiApp1/Platforms/iOS/AppDelegate.cs b/various/clients/Maui/net9/MauiApp1/Platforms/iOS/AppDelegate.cs
new file mode 100644
index 00000000..e3dcc331
--- /dev/null
+++ b/various/clients/Maui/net9/MauiApp1/Platforms/iOS/AppDelegate.cs
@@ -0,0 +1,8 @@
+using Foundation;
+
+namespace MauiApp1;
+[Register("AppDelegate")]
+public class AppDelegate : MauiUIApplicationDelegate
+{
+ protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
+}
diff --git a/various/clients/Maui/net9/MauiApp1/Platforms/iOS/Info.plist b/various/clients/Maui/net9/MauiApp1/Platforms/iOS/Info.plist
new file mode 100644
index 00000000..7fd4fc40
--- /dev/null
+++ b/various/clients/Maui/net9/MauiApp1/Platforms/iOS/Info.plist
@@ -0,0 +1,47 @@
+
+
+
+
+
+ CFBundleURLTypes
+
+
+ CFBundleURLName
+ My App
+ CFBundleURLSchemes
+
+ myapp
+
+ CFBundleTypeRole
+ Editor
+
+
+
+ LSRequiresIPhoneOS
+
+ UIDeviceFamily
+
+ 1
+ 2
+
+ UIRequiredDeviceCapabilities
+
+ arm64
+
+ UISupportedInterfaceOrientations
+
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+ UISupportedInterfaceOrientations~ipad
+
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationPortraitUpsideDown
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+ XSAppIconAssets
+ Assets.xcassets/appicon.appiconset
+
+
diff --git a/various/clients/Maui/net9/MauiApp1/Platforms/iOS/Program.cs b/various/clients/Maui/net9/MauiApp1/Platforms/iOS/Program.cs
new file mode 100644
index 00000000..615bcbb1
--- /dev/null
+++ b/various/clients/Maui/net9/MauiApp1/Platforms/iOS/Program.cs
@@ -0,0 +1,14 @@
+using ObjCRuntime;
+using UIKit;
+
+namespace MauiApp1;
+public class Program
+{
+ // This is the main entry point of the application.
+ static void Main(string[] args)
+ {
+ // if you want to use a different Application Delegate class from "AppDelegate"
+ // you can specify it here.
+ UIApplication.Main(args, null, typeof(AppDelegate));
+ }
+}
diff --git a/various/clients/Maui/net9/MauiApp1/Properties/launchSettings.json b/various/clients/Maui/net9/MauiApp1/Properties/launchSettings.json
new file mode 100644
index 00000000..edf8aadc
--- /dev/null
+++ b/various/clients/Maui/net9/MauiApp1/Properties/launchSettings.json
@@ -0,0 +1,8 @@
+{
+ "profiles": {
+ "Windows Machine": {
+ "commandName": "MsixPackage",
+ "nativeDebugging": false
+ }
+ }
+}
\ No newline at end of file
diff --git a/various/clients/Maui/net9/MauiApp1/Resources/AppIcon/appicon.svg b/various/clients/Maui/net9/MauiApp1/Resources/AppIcon/appicon.svg
new file mode 100644
index 00000000..9d63b651
--- /dev/null
+++ b/various/clients/Maui/net9/MauiApp1/Resources/AppIcon/appicon.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/various/clients/Maui/net9/MauiApp1/Resources/AppIcon/appiconfg.svg b/various/clients/Maui/net9/MauiApp1/Resources/AppIcon/appiconfg.svg
new file mode 100644
index 00000000..21dfb25f
--- /dev/null
+++ b/various/clients/Maui/net9/MauiApp1/Resources/AppIcon/appiconfg.svg
@@ -0,0 +1,8 @@
+
+
+
\ No newline at end of file
diff --git a/various/clients/Maui/net9/MauiApp1/Resources/Fonts/OpenSans-Regular.ttf b/various/clients/Maui/net9/MauiApp1/Resources/Fonts/OpenSans-Regular.ttf
new file mode 100644
index 00000000..9ab655d2
Binary files /dev/null and b/various/clients/Maui/net9/MauiApp1/Resources/Fonts/OpenSans-Regular.ttf differ
diff --git a/various/clients/Maui/net9/MauiApp1/Resources/Fonts/OpenSans-Semibold.ttf b/various/clients/Maui/net9/MauiApp1/Resources/Fonts/OpenSans-Semibold.ttf
new file mode 100644
index 00000000..2b7468e9
Binary files /dev/null and b/various/clients/Maui/net9/MauiApp1/Resources/Fonts/OpenSans-Semibold.ttf differ
diff --git a/various/clients/Maui/net9/MauiApp1/Resources/Images/dotnet_bot.png b/various/clients/Maui/net9/MauiApp1/Resources/Images/dotnet_bot.png
new file mode 100644
index 00000000..f93ce025
Binary files /dev/null and b/various/clients/Maui/net9/MauiApp1/Resources/Images/dotnet_bot.png differ
diff --git a/various/clients/Maui/net9/MauiApp1/Resources/Raw/AboutAssets.txt b/various/clients/Maui/net9/MauiApp1/Resources/Raw/AboutAssets.txt
new file mode 100644
index 00000000..15d62448
--- /dev/null
+++ b/various/clients/Maui/net9/MauiApp1/Resources/Raw/AboutAssets.txt
@@ -0,0 +1,15 @@
+Any raw assets you want to be deployed with your application can be placed in
+this directory (and child directories). Deployment of the asset to your application
+is automatically handled by the following `MauiAsset` Build Action within your `.csproj`.
+
+
+
+These files will be deployed with you package and will be accessible using Essentials:
+
+ async Task LoadMauiAsset()
+ {
+ using var stream = await FileSystem.OpenAppPackageFileAsync("AboutAssets.txt");
+ using var reader = new StreamReader(stream);
+
+ var contents = reader.ReadToEnd();
+ }
diff --git a/various/clients/Maui/net9/MauiApp1/Resources/Splash/splash.svg b/various/clients/Maui/net9/MauiApp1/Resources/Splash/splash.svg
new file mode 100644
index 00000000..21dfb25f
--- /dev/null
+++ b/various/clients/Maui/net9/MauiApp1/Resources/Splash/splash.svg
@@ -0,0 +1,8 @@
+
+
+
\ No newline at end of file
diff --git a/various/clients/Maui/net9/MauiApp1/Resources/Styles/Colors.xaml b/various/clients/Maui/net9/MauiApp1/Resources/Styles/Colors.xaml
new file mode 100644
index 00000000..30307a5d
--- /dev/null
+++ b/various/clients/Maui/net9/MauiApp1/Resources/Styles/Colors.xaml
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+ #512BD4
+ #ac99ea
+ #242424
+ #DFD8F7
+ #9880e5
+ #2B0B98
+
+ White
+ Black
+ #D600AA
+ #190649
+ #1f1f1f
+
+ #E1E1E1
+ #C8C8C8
+ #ACACAC
+ #919191
+ #6E6E6E
+ #404040
+ #212121
+ #141414
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/various/clients/Maui/net9/MauiApp1/Resources/Styles/Styles.xaml b/various/clients/Maui/net9/MauiApp1/Resources/Styles/Styles.xaml
new file mode 100644
index 00000000..e0d36bb7
--- /dev/null
+++ b/various/clients/Maui/net9/MauiApp1/Resources/Styles/Styles.xaml
@@ -0,0 +1,426 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+