Skip to content
Closed
Show file tree
Hide file tree
Changes from 38 commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
9de31e1
Add pristine 'dotnet new blazor --auth Individual' as Essentials.Samp…
mattleibow Jul 24, 2026
9087d7b
Re-add bootstrap *.js.map files from the Blazor template
mattleibow Jul 24, 2026
a2bca07
Exclude regenerated SQLite app.db from the WebServer sample
mattleibow Jul 24, 2026
cfbd167
Wire WebServer sample into MAUI repo build conventions
mattleibow Jul 24, 2026
8f1ab6d
Add Essentials.Samples.WebServer to the solutions
mattleibow Jul 24, 2026
c825c60
Align WebServer EF/Identity package versions to the repo's ASP.NET Co…
mattleibow Jul 24, 2026
f41e83d
Add spec for cross-platform Passkeys (WebAuthn/FIDO2) Essentials API
mattleibow Jul 16, 2026
d77f0cf
Split passkey usage example into registration and login sections
mattleibow Jul 16, 2026
26cb04c
Use opaque JSON-carrier objects with selective extension methods
mattleibow Jul 16, 2026
5ae6eaf
Add bound Obj-C/.NET Apple example and industry-anchored naming decis…
mattleibow Jul 16, 2026
7a1cf88
Drop base type/extension methods; expose JSON via ToString and add ca…
mattleibow Jul 16, 2026
b0fcc40
Address PR review feedback: HTTP posting, macOS scope, filenames, wor…
mattleibow Jul 16, 2026
2e23817
Revise spec: no-Play Android, OS-specifics, decoded-props, ASP.NET Id…
mattleibow Jul 16, 2026
d4a9181
Add Appendix A (conditional-UI/autofill follow-up); split knob 1a/1b …
mattleibow Jul 16, 2026
0adcce1
Expand §7.5 with per-knob native APIs and behavior matrices
mattleibow Jul 16, 2026
646462f
Convert spec to definitive end-state (remove decision-journal framing)
mattleibow Jul 16, 2026
7adea7b
Improve section flow and fix heading anchors
mattleibow Jul 16, 2026
d73d5e5
Address new review feedback: window API, origin, PasskeyException, wo…
mattleibow Jul 17, 2026
87b92ad
Implement Passkeys Essentials API (shared, Apple, Windows; Android/ot…
mattleibow Jul 17, 2026
8c38eca
Implement Android passkeys via AndroidX Credential Manager
mattleibow Jul 17, 2026
4e98987
Address PR review: parser/validation, Windows correctness, iOS UV, tests
mattleibow Jul 18, 2026
776c548
Add reference server and sample pages for Passkeys + WebAuthenticator
mattleibow Jul 23, 2026
6834cc7
Rename auth sample server to Samples.WebServer and fix broken styling
mattleibow Jul 23, 2026
3a43c22
Skip email confirmation on the dev auth sample server
mattleibow Jul 23, 2026
06ce2ec
Automate Android passkey setup for the sample
mattleibow Jul 23, 2026
b2c6858
Rename setup-devtunnel.ps1 to Configure.ps1 and derive Android values
mattleibow Jul 23, 2026
832418c
Fix dev tunnel URL detection in Configure.ps1
mattleibow Jul 23, 2026
74b031d
Use the per-tunnel (random) URL and avoid duplicate tunnels
mattleibow Jul 23, 2026
7aafaa2
Refocus samples on passkeys only; align server with stock template
mattleibow Jul 23, 2026
562aa05
Require sign-in for passkey registration; drop passwordless fallback
mattleibow Jul 23, 2026
bd8e5ba
Fix Configure.ps1 to read the keystore .NET Android actually signs with
mattleibow Jul 23, 2026
70a6f05
Fix antiforgery 400 on native passkey endpoints; add sign-out + clean…
mattleibow Jul 24, 2026
30b58f4
Make passkey sign-in username-less to avoid credential/user mismatch
mattleibow Jul 24, 2026
0ba4bed
Empty the sample credential fields; drop hardcoded alice@example.com …
mattleibow Jul 24, 2026
43d0623
Adopt baseline's repo-integration for the WebServer sample
mattleibow Jul 24, 2026
336848e
Make the passkeys sample behave like a real login system
mattleibow Jul 24, 2026
768d222
Add passkey list, naming, and removal to the sample
mattleibow Jul 25, 2026
7bbb050
Add server-brokered (BFF) external OAuth sign-in to the sample
mattleibow Jul 26, 2026
feb048c
Make external OAuth sign-in generic; remove the mock provider
mattleibow Jul 26, 2026
9d33210
Reword external buttons to "Sign in with <provider>"; harden Apple co…
mattleibow Jul 27, 2026
b12df2a
Trim sample comments to describe current behavior
mattleibow Jul 27, 2026
60f69b5
Move external OAuth sign-in to a stacked PR
mattleibow Jul 27, 2026
67cdf7f
Add Apple passkeys test setup and a samples README/testing guide
mattleibow Jul 27, 2026
1fb4d8c
Refine Apple passkey testing docs in the samples README
mattleibow Jul 27, 2026
538767f
Correct Mac Catalyst signing note in the samples README
mattleibow Jul 27, 2026
bdbcb09
Make Configure.ps1 a one-stop Apple signing setup for the passkeys sa…
mattleibow Jul 27, 2026
27706e0
Keep all passkey-test dev config out of committed files
mattleibow Jul 27, 2026
8e5b50b
Refine Configure.ps1: shared ApplicationId, fail-fast, xplat plist, t…
mattleibow Jul 27, 2026
ca00b48
Move the server-URL AssemblyMetadata fully into the local props
mattleibow Jul 27, 2026
c44276e
Remove the temporary nuget.org source from NuGet.config
mattleibow Jul 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions Microsoft.Maui-dev.sln
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Essentials.Sample", "src\Es
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Essentials.Sample.Server.WebAuthenticator", "src\Essentials\samples\Sample.Server.WebAuthenticator\Essentials.Sample.Server.WebAuthenticator.csproj", "{F7DB0CB3-D244-403A-8C3B-B1ED5E5838EC}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Essentials.Samples.WebServer", "src\Essentials\samples\Samples.WebServer\Essentials.Samples.WebServer.csproj", "{049EE355-4999-4ECB-8C66-F3425B024336}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BlazorWinFormsApp", "src\BlazorWebView\samples\BlazorWinFormsApp\BlazorWinFormsApp.csproj", "{7A10CA08-6394-43D3-AFAA-4D696EA111C9}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BlazorWpfApp", "src\BlazorWebView\samples\BlazorWpfApp\BlazorWpfApp.csproj", "{3C0ACFD6-9FBE-46C2-B4A5-3C1839476A1D}"
Expand Down Expand Up @@ -427,6 +429,10 @@ Global
{F7DB0CB3-D244-403A-8C3B-B1ED5E5838EC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F7DB0CB3-D244-403A-8C3B-B1ED5E5838EC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F7DB0CB3-D244-403A-8C3B-B1ED5E5838EC}.Release|Any CPU.Build.0 = Release|Any CPU
{049EE355-4999-4ECB-8C66-F3425B024336}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{049EE355-4999-4ECB-8C66-F3425B024336}.Debug|Any CPU.Build.0 = Debug|Any CPU
{049EE355-4999-4ECB-8C66-F3425B024336}.Release|Any CPU.ActiveCfg = Release|Any CPU
{049EE355-4999-4ECB-8C66-F3425B024336}.Release|Any CPU.Build.0 = Release|Any CPU
{7A10CA08-6394-43D3-AFAA-4D696EA111C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7A10CA08-6394-43D3-AFAA-4D696EA111C9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7A10CA08-6394-43D3-AFAA-4D696EA111C9}.Release|Any CPU.ActiveCfg = Release|Any CPU
Expand Down Expand Up @@ -742,6 +748,7 @@ Global
{95BF8553-3D9D-4831-ACDD-A3E697BC08A6} = {94F3C036-A5F4-4ACC-A028-8506802ADB88}
{C677BF3D-B234-491D-BA48-D9742DB564F8} = {95BF8553-3D9D-4831-ACDD-A3E697BC08A6}
{F7DB0CB3-D244-403A-8C3B-B1ED5E5838EC} = {95BF8553-3D9D-4831-ACDD-A3E697BC08A6}
{049EE355-4999-4ECB-8C66-F3425B024336} = {95BF8553-3D9D-4831-ACDD-A3E697BC08A6}
{7A10CA08-6394-43D3-AFAA-4D696EA111C9} = {A8E9400E-70DD-421F-8609-1C2FA4AE8E71}
{3C0ACFD6-9FBE-46C2-B4A5-3C1839476A1D} = {A8E9400E-70DD-421F-8609-1C2FA4AE8E71}
{ED7F28E0-D0AF-417D-983D-3D874EEE8554} = {1614D1A4-5C3D-4D5B-8C89-426E37A564EF}
Expand Down
1 change: 1 addition & 0 deletions Microsoft.Maui-mac.slnf
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@
"src\\Core\\tests\\DeviceTests\\Core.DeviceTests.csproj",
"src\\Core\\tests\\UnitTests\\Core.UnitTests.csproj",
"src\\Essentials\\samples\\Sample.Server.WebAuthenticator\\Essentials.Sample.Server.WebAuthenticator.csproj",
"src\\Essentials\\samples\\Samples.WebServer\\Essentials.Samples.WebServer.csproj",
"src\\Essentials\\samples\\Samples\\Essentials.Sample.csproj",
"src\\Essentials\\src\\Essentials.csproj",
"src\\Essentials\\test\\DeviceTests\\Essentials.DeviceTests.csproj",
Expand Down
7 changes: 7 additions & 0 deletions Microsoft.Maui-vscode.sln
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Essentials.Sample", "src\Es
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Essentials.Sample.Server.WebAuthenticator", "src\Essentials\samples\Sample.Server.WebAuthenticator\Essentials.Sample.Server.WebAuthenticator.csproj", "{F7DB0CB3-D244-403A-8C3B-B1ED5E5838EC}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Essentials.Samples.WebServer", "src\Essentials\samples\Samples.WebServer\Essentials.Samples.WebServer.csproj", "{049EE355-4999-4ECB-8C66-F3425B024336}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{ED7F28E0-D0AF-417D-983D-3D874EEE8554}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtils.DeviceTests", "src\TestUtils\src\DeviceTests\TestUtils.DeviceTests.csproj", "{F28E8899-98D2-4915-8D48-D101D4837AB9}"
Expand Down Expand Up @@ -388,6 +390,10 @@ Global
{F7DB0CB3-D244-403A-8C3B-B1ED5E5838EC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F7DB0CB3-D244-403A-8C3B-B1ED5E5838EC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F7DB0CB3-D244-403A-8C3B-B1ED5E5838EC}.Release|Any CPU.Build.0 = Release|Any CPU
{049EE355-4999-4ECB-8C66-F3425B024336}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{049EE355-4999-4ECB-8C66-F3425B024336}.Debug|Any CPU.Build.0 = Debug|Any CPU
{049EE355-4999-4ECB-8C66-F3425B024336}.Release|Any CPU.ActiveCfg = Release|Any CPU
{049EE355-4999-4ECB-8C66-F3425B024336}.Release|Any CPU.Build.0 = Release|Any CPU
{F28E8899-98D2-4915-8D48-D101D4837AB9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F28E8899-98D2-4915-8D48-D101D4837AB9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F28E8899-98D2-4915-8D48-D101D4837AB9}.Release|Any CPU.ActiveCfg = Release|Any CPU
Expand Down Expand Up @@ -652,6 +658,7 @@ Global
{95BF8553-3D9D-4831-ACDD-A3E697BC08A6} = {94F3C036-A5F4-4ACC-A028-8506802ADB88}
{C677BF3D-B234-491D-BA48-D9742DB564F8} = {95BF8553-3D9D-4831-ACDD-A3E697BC08A6}
{F7DB0CB3-D244-403A-8C3B-B1ED5E5838EC} = {95BF8553-3D9D-4831-ACDD-A3E697BC08A6}
{049EE355-4999-4ECB-8C66-F3425B024336} = {95BF8553-3D9D-4831-ACDD-A3E697BC08A6}
{ED7F28E0-D0AF-417D-983D-3D874EEE8554} = {1614D1A4-5C3D-4D5B-8C89-426E37A564EF}
{F28E8899-98D2-4915-8D48-D101D4837AB9} = {7AC28763-9C68-4BF9-A1BA-25CBFFD2D15C}
{C8B3C3B3-1CDA-41A2-BF20-A7FE33D6BB36} = {25D0D27A-C5FE-443D-8B65-D6C987F4A80E}
Expand Down
1 change: 1 addition & 0 deletions Microsoft.Maui-windows.slnf
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@
"src\\Core\\tests\\DeviceTests\\Core.DeviceTests.csproj",
"src\\Core\\tests\\UnitTests\\Core.UnitTests.csproj",
"src\\Essentials\\samples\\Sample.Server.WebAuthenticator\\Essentials.Sample.Server.WebAuthenticator.csproj",
"src\\Essentials\\samples\\Samples.WebServer\\Essentials.Samples.WebServer.csproj",
"src\\Essentials\\samples\\Samples\\Essentials.Sample.csproj",
"src\\Essentials\\src\\Essentials.csproj",
"src\\Essentials\\test\\DeviceTests\\Essentials.DeviceTests.csproj",
Expand Down
7 changes: 7 additions & 0 deletions Microsoft.Maui.sln
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Essentials.Sample", "src\Es
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Essentials.Sample.Server.WebAuthenticator", "src\Essentials\samples\Sample.Server.WebAuthenticator\Essentials.Sample.Server.WebAuthenticator.csproj", "{F7DB0CB3-D244-403A-8C3B-B1ED5E5838EC}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Essentials.Samples.WebServer", "src\Essentials\samples\Samples.WebServer\Essentials.Samples.WebServer.csproj", "{049EE355-4999-4ECB-8C66-F3425B024336}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BlazorWinFormsApp", "src\BlazorWebView\samples\BlazorWinFormsApp\BlazorWinFormsApp.csproj", "{7A10CA08-6394-43D3-AFAA-4D696EA111C9}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BlazorWpfApp", "src\BlazorWebView\samples\BlazorWpfApp\BlazorWpfApp.csproj", "{3C0ACFD6-9FBE-46C2-B4A5-3C1839476A1D}"
Expand Down Expand Up @@ -414,6 +416,10 @@ Global
{F7DB0CB3-D244-403A-8C3B-B1ED5E5838EC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F7DB0CB3-D244-403A-8C3B-B1ED5E5838EC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F7DB0CB3-D244-403A-8C3B-B1ED5E5838EC}.Release|Any CPU.Build.0 = Release|Any CPU
{049EE355-4999-4ECB-8C66-F3425B024336}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{049EE355-4999-4ECB-8C66-F3425B024336}.Debug|Any CPU.Build.0 = Debug|Any CPU
{049EE355-4999-4ECB-8C66-F3425B024336}.Release|Any CPU.ActiveCfg = Release|Any CPU
{049EE355-4999-4ECB-8C66-F3425B024336}.Release|Any CPU.Build.0 = Release|Any CPU
{7A10CA08-6394-43D3-AFAA-4D696EA111C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7A10CA08-6394-43D3-AFAA-4D696EA111C9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7A10CA08-6394-43D3-AFAA-4D696EA111C9}.Release|Any CPU.ActiveCfg = Release|Any CPU
Expand Down Expand Up @@ -721,6 +727,7 @@ Global
{95BF8553-3D9D-4831-ACDD-A3E697BC08A6} = {94F3C036-A5F4-4ACC-A028-8506802ADB88}
{C677BF3D-B234-491D-BA48-D9742DB564F8} = {95BF8553-3D9D-4831-ACDD-A3E697BC08A6}
{F7DB0CB3-D244-403A-8C3B-B1ED5E5838EC} = {95BF8553-3D9D-4831-ACDD-A3E697BC08A6}
{049EE355-4999-4ECB-8C66-F3425B024336} = {95BF8553-3D9D-4831-ACDD-A3E697BC08A6}
{7A10CA08-6394-43D3-AFAA-4D696EA111C9} = {A8E9400E-70DD-421F-8609-1C2FA4AE8E71}
{3C0ACFD6-9FBE-46C2-B4A5-3C1839476A1D} = {A8E9400E-70DD-421F-8609-1C2FA4AE8E71}
{ED7F28E0-D0AF-417D-983D-3D874EEE8554} = {1614D1A4-5C3D-4D5B-8C89-426E37A564EF}
Expand Down
4 changes: 4 additions & 0 deletions NuGet.config
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,10 @@
<add key="dotnet10-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet10-transport/nuget/v3/index.json" />
<add key="dotnet9" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet9/nuget/v3/index.json" />
<add key="dotnet9-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet9-transport/nuget/v3/index.json" />
<!-- TEMPORARY: nuget.org added to restore Xamarin.AndroidX.Credentials for the Passkeys Android
implementation. This package must be mirrored into the dotnet-public feed and this source
REMOVED before merging. DO NOT MERGE with nuget.org present. -->
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Acknowledged — nuget.org is marked TEMPORARY in NuGet.config and must be removed before merge once Xamarin.AndroidX.Credentials is mirrored into dotnet-public. It's added only so the Android binding restores in this dev environment.

</packageSources>
<activePackageSource>
<add key="All" value="(Aggregate source)" />
Expand Down
Loading
Loading