Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
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
843 changes: 843 additions & 0 deletions aspnetcore/blazor/security/passkeys-migration.md

Large diffs are not rendered by default.

663 changes: 663 additions & 0 deletions aspnetcore/blazor/security/passkeys.md

Large diffs are not rendered by default.

9 changes: 3 additions & 6 deletions aspnetcore/migration/80-90.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,15 @@
---
title: Migrate from ASP.NET Core in .NET 8 to ASP.NET Core in .NET 9
author: wadepickett
description: Learn how to migrate an ASP.NET Core in .NET 8 to ASP.NET Core in .NET 9
description: Learn how to migrate an ASP.NET Core in .NET 8 to ASP.NET Core in .NET 9.
ms.author: wpickett
ms.date: 2/11/2024
uid: migration/80-to-90
---

<!-- New content should be added to ~/migration/includes/aspnetcore-9/includes/{FILE}.md files. This will help prevent merge conflicts in this file. -->

# Migrate from ASP.NET Core in .NET 8 to ASP.NET Core in .NET 9

<!-- New content should be added to the includes files in the '80-to-90' folder. This will help prevent merge conflicts in this file. -->

This article explains how to update an ASP.NET Core in .NET 8 to ASP.NET Core in .NET 9.

## Prerequisites
Expand Down Expand Up @@ -113,5 +112,3 @@ For more information, see the following resources:
## Blazor

[!INCLUDE[](~/migration/80-to-90/includes/blazor.md)]

## Additional resources
84 changes: 84 additions & 0 deletions aspnetcore/migration/90-to-100.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
---
title: Migrate from ASP.NET Core in .NET 9 to ASP.NET Core in .NET 10
author: wadepickett
description: Learn how to migrate an ASP.NET Core in .NET 9 to ASP.NET Core in .NET 10.
ms.author: wpickett
ms.date: 8/13/2025
uid: migration/90-to-100
---
# Migrate from ASP.NET Core in .NET 9 to ASP.NET Core in .NET 10

<!-- New content should be added to the includes files in the '90-to-100' folder. This will help prevent merge conflicts in this file. -->

This article explains how to update an ASP.NET Core in .NET 9 to ASP.NET Core in .NET 10.

## Prerequisites

<!-- NOTE: The prereqs INCLUDES files have are in a poor state these days. I've opened
https://github.com/dotnet/AspNetCore.Docs/issues/35937 to work on them.
For now, we'll use what's available.

I'll remove this remark before merging the passkeys PR. -->

# [Visual Studio](#tab/visual-studio)

[!INCLUDE[](~/includes/net-prereqs-vs-10-latest.md)]

# [Visual Studio Code](#tab/visual-studio-code)

[!INCLUDE[](~/includes/net-prereqs-vsc-10.0.md)]

---

## Update the .NET SDK version in `global.json`

If you rely on a [`global.json`](/dotnet/core/tools/global-json) file to target a specific .NET SDK version, update the `version` property to the .NET 10 SDK version that's installed. For example:

```diff
{
"sdk": {
- "version": "9.0.304"
+ "version": "10.0.100"
}
}
```

## Update the target framework

Update the project file's [Target Framework Moniker (TFM)](/dotnet/standard/frameworks) to `net10.0`:

```diff
<Project Sdk="Microsoft.NET.Sdk.Web">

<PropertyGroup>
- <TargetFramework>net9.0</TargetFramework>
+ <TargetFramework>net10.0</TargetFramework>
</PropertyGroup>

</Project>
```

## Update package references

In the project file, update each [`Microsoft.AspNetCore.*`](https://www.nuget.org/packages?q=Microsoft.AspNetCore.*), [`Microsoft.EntityFrameworkCore.*`](https://www.nuget.org/packages?q=Microsoft.EntityFrameworkCore.*), [`Microsoft.Extensions.*`](https://www.nuget.org/packages?q=Microsoft.Extensions.*), and [`System.Net.Http.Json`](https://www.nuget.org/packages/System.Net.Http.Json) package reference's `Version` attribute to 10.0.0 or later. For example:

```diff
<ItemGroup>
- <PackageReference Include="Microsoft.AspNetCore.JsonPatch" Version="9.0.0" />
- <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="9.0.0" />
- <PackageReference Include="Microsoft.Extensions.Caching.Abstractions" Version="9.0.0" />
- <PackageReference Include="System.Net.Http.Json" Version="9.0.0" />
+ <PackageReference Include="Microsoft.AspNetCore.JsonPatch" Version="10.0.0" />
+ <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="10.0.0" />
+ <PackageReference Include="Microsoft.Extensions.Caching.Abstractions" Version="10.0.0" />
+ <PackageReference Include="System.Net.Http.Json" Version="10.0.0" />
</ItemGroup>
```

## Blazor

[!INCLUDE[](~/migration/90-to-100/includes/blazor.md)]

### Adopt passkey user authentication in an existing Razor Pages or MVC app

For guidance, see <xref:security/authentication/passkeys-migration>.
5 changes: 5 additions & 0 deletions aspnetcore/migration/90-to-100/includes/blazor.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Complete migration coverage for Blazor apps is scheduled for September and October of 2025.

### Adopt passkey user authentication in an existing Blazor Web App

For guidance, see <xref:blazor/security/passkeys-migration>.
11 changes: 6 additions & 5 deletions aspnetcore/release-notes/aspnetcore-10/includes/blazor.md
Original file line number Diff line number Diff line change
Expand Up @@ -601,13 +601,14 @@ For more information, see <xref:blazor/host-and-deploy/webassembly/bundle-cachin

[Web Authentication (WebAuthn) API](https://developer.mozilla.org/docs/Web/API/Web_Authentication_API) support, known widely as *passkeys*, is a modern, phishing-resistant authentication method that improves security and user experience by leveraging public key cryptography and device-based authentication. ASP.NET Core Identity now supports passkey authentication based on WebAuthn and FIDO2 standards. This feature allows users to sign in without passwords, using secure, device-based authentication methods, such as biometrics or security keys.

The Preview 7 Blazor Web App project template provides out-of-the-box passkey management and login functionality:
The Blazor Web App project template provides out-of-the-box passkey management and login functionality.

```dotnetcli
dotnet new blazor -au Individual -o BlazorWebAppPasskeySample
```
For more information, see the following articles:

* <xref:blazor/security/passkeys>
* <xref:blazor/security/passkeys-migration>

We plan to publish migration guidance for existing apps by Friday, August 15.
Partial implementation guidance for existing Razor Pages and MVC apps is available in <xref:security/authentication/passkeys-migration>.

### Circuit state persistence

Expand Down
Loading