diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md index 89e6780e1929c..8919371790ab8 100644 --- a/docs/azure/includes/dotnet-all.md +++ b/docs/azure/includes/dotnet-all.md @@ -116,6 +116,8 @@ | Text Translation | NuGet [1.0.0](https://www.nuget.org/packages/Azure.AI.Translation.Text/1.0.0) | [docs](/dotnet/api/overview/azure/AI.Translation.Text-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Translation.Text_1.0.0/sdk/translation/Azure.AI.Translation.Text/) | | Time Series Insights | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.IoT.TimeSeriesInsights/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/IoT.TimeSeriesInsights-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.IoT.TimeSeriesInsights_1.0.0-beta.1/sdk/timeseriesinsights/Azure.IoT.TimeSeriesInsights/) | | TimeZone | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Maps.TimeZones/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Maps.TimeZones-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Maps.TimeZones_1.0.0-beta.1/sdk/maps/Azure.Maps.TimeZones/) | +| unknown | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.AI.AgentServer.Contracts/1.0.0-beta.1) | | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.AgentServer.Contracts_1.0.0-beta.1/sdk/agentserver/Azure.AI.AgentServer.Contracts/) | +| unknown | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.AI.AgentServer.Core/1.0.0-beta.1) | | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.AgentServer.Core_1.0.0-beta.1/sdk/agentserver/Azure.AI.AgentServer.Core/) | | Vision Common | NuGet [0.15.1-beta.1](https://www.nuget.org/packages/Azure.AI.Vision.Common/0.15.1-beta.1) | | GitHub [0.15.1-beta.1](https://msasg.visualstudio.com/Skyman/_git/Carbon) | | Voice Live | NuGet [1.0.0](https://www.nuget.org/packages/Azure.AI.VoiceLive/1.0.0) | [docs](/dotnet/api/overview/azure/AI.VoiceLive-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.VoiceLive_1.0.0/sdk/ai/Azure.AI.VoiceLive/) | | WCF Storage Queues | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Microsoft.WCF.Azure.StorageQueues/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Microsoft.WCF.Azure.StorageQueues-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.WCF.Azure.StorageQueues_1.0.0-beta.1/sdk/extension-wcf/Microsoft.WCF.Azure.StorageQueues/) | @@ -264,7 +266,6 @@ | Resource Management - Hardware Security Modules | NuGet [1.0.0](https://www.nuget.org/packages/Azure.ResourceManager.HardwareSecurityModules/1.0.0) | [docs](/dotnet/api/overview/azure/ResourceManager.HardwareSecurityModules-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.HardwareSecurityModules_1.0.0/sdk/hardwaresecuritymodules/Azure.ResourceManager.HardwareSecurityModules/) | | Resource Management - Hci.Vm | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.Hci.Vm/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.Hci.Vm-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Hci.Vm_1.0.0-beta.1/sdk/azurestackhci/Azure.ResourceManager.Hci.Vm/) | | Resource Management - HDInsight | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.HDInsight/1.1.0)
NuGet [1.2.0-beta.5](https://www.nuget.org/packages/Azure.ResourceManager.HDInsight/1.2.0-beta.5) | [docs](/dotnet/api/overview/azure/ResourceManager.HDInsight-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.HDInsight_1.1.0/sdk/hdinsight/Azure.ResourceManager.HDInsight/)
GitHub [1.2.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.HDInsight_1.2.0-beta.5/sdk/hdinsight/Azure.ResourceManager.HDInsight/) | -| Resource Management - HDInsight Containers | NuGet [1.0.0-beta.5](https://www.nuget.org/packages/Azure.ResourceManager.HDInsight.Containers/1.0.0-beta.5) | [docs](/dotnet/api/overview/azure/ResourceManager.HDInsight.Containers-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.HDInsight.Containers_1.0.0-beta.5/sdk/hdinsightcontainers/Azure.ResourceManager.HDInsight.Containers/) | | Resource Management - Health Bot | NuGet [1.2.0](https://www.nuget.org/packages/Azure.ResourceManager.HealthBot/1.2.0) | [docs](/dotnet/api/overview/azure/ResourceManager.HealthBot-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.HealthBot_1.2.0/sdk/healthbot/Azure.ResourceManager.HealthBot/) | | Resource Management - Health Data AI Services | NuGet [1.0.0](https://www.nuget.org/packages/Azure.ResourceManager.HealthDataAIServices/1.0.0) | [docs](/dotnet/api/overview/azure/ResourceManager.HealthDataAIServices-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.HealthDataAIServices_1.0.0/sdk/healthdataaiservices/Azure.ResourceManager.HealthDataAIServices/) | | Resource Management - Healthcare APIs | NuGet [1.3.1](https://www.nuget.org/packages/Azure.ResourceManager.HealthcareApis/1.3.1) | [docs](/dotnet/api/overview/azure/ResourceManager.HealthcareApis-readme) | GitHub [1.3.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.HealthcareApis_1.3.1/sdk/healthcareapis/Azure.ResourceManager.HealthcareApis/) | @@ -536,8 +537,8 @@ | Functions extension for Azure SQL and SQL Server | NuGet [3.1.527](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Sql/3.1.527) | | | | Functions extension for Cosmos DB | NuGet [4.11.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.CosmosDB/4.11.0)
NuGet [4.12.0-preview.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.CosmosDB/4.12.0-preview.1) | | GitHub [4.11.0](https://github.com/Azure/azure-webjobs-sdk-extensions/tree/cosmos-v3.0.7/src/WebJobs.Extensions.CosmosDB) | | Functions extension for DocumentDB | NuGet [1.3.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.DocumentDB/1.3.0) | | GitHub [1.3.0](https://github.com/Azure/azure-webjobs-sdk-extensions) | -| Functions extension for Durable Task Framework | NuGet [3.6.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.DurableTask/3.6.0) | [docs](/dotnet/api/overview/azure/functions) | GitHub [3.6.0](https://github.com/Azure/azure-functions-durable-extension/tree/v2.2.2/src/WebJobs.Extensions.DurableTask) | -| Functions extension for Durable Task Framework - isolated worker | NuGet [1.9.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.DurableTask/1.9.0) | | | +| Functions extension for Durable Task Framework | NuGet [3.7.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.DurableTask/3.7.0) | [docs](/dotnet/api/overview/azure/functions) | GitHub [3.7.0](https://github.com/Azure/azure-functions-durable-extension/tree/v2.2.2/src/WebJobs.Extensions.DurableTask) | +| Functions extension for Durable Task Framework - isolated worker | NuGet [1.10.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.DurableTask/1.10.0) | | | | Functions extension for HTTP | NuGet [3.2.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Http/3.2.1) | | GitHub [3.2.1](https://github.com/Azure/azure-webjobs-sdk-extensions/tree/v3.0.2/src/WebJobs.Extensions.Http) | | Functions extension for IoT Edge | NuGet [1.0.7](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EdgeHub/1.0.7) | | GitHub [1.0.7](https://github.com/Azure/iotedge/tree/1.0.7/edge-hub) | | Functions extension for Kafka | NuGet [4.2.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Kafka/4.2.0) | | GitHub [4.2.0](https://github.com/Azure/azure-functions-kafka-extension/tree/3.0.0/src/Microsoft.Azure.WebJobs.Extensions.Kafka) | diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md index c130caa58020d..46720ff7e9774 100644 --- a/docs/azure/includes/dotnet-new.md +++ b/docs/azure/includes/dotnet-new.md @@ -124,6 +124,8 @@ | Text Translation | NuGet [1.0.0](https://www.nuget.org/packages/Azure.AI.Translation.Text/1.0.0) | [docs](/dotnet/api/overview/azure/AI.Translation.Text-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Translation.Text_1.0.0/sdk/translation/Azure.AI.Translation.Text/) | | Time Series Insights | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.IoT.TimeSeriesInsights/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/IoT.TimeSeriesInsights-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.IoT.TimeSeriesInsights_1.0.0-beta.1/sdk/timeseriesinsights/Azure.IoT.TimeSeriesInsights/) | | TimeZone | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Maps.TimeZones/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Maps.TimeZones-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Maps.TimeZones_1.0.0-beta.1/sdk/maps/Azure.Maps.TimeZones/) | +| unknown | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.AI.AgentServer.Contracts/1.0.0-beta.1) | | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.AgentServer.Contracts_1.0.0-beta.1/sdk/agentserver/Azure.AI.AgentServer.Contracts/) | +| unknown | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.AI.AgentServer.Core/1.0.0-beta.1) | | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.AgentServer.Core_1.0.0-beta.1/sdk/agentserver/Azure.AI.AgentServer.Core/) | | Video Analyzer Edge | NuGet [1.0.0-beta.6](https://www.nuget.org/packages/Azure.Media.VideoAnalyzer.Edge/1.0.0-beta.6) | [docs](/dotnet/api/overview/azure/Media.VideoAnalyzer.Edge-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.6](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Media.VideoAnalyzer.Edge_1.0.0-beta.6/sdk/videoanalyzer/Azure.Media.VideoAnalyzer.Edge/) | | Vision Common | NuGet [0.15.1-beta.1](https://www.nuget.org/packages/Azure.AI.Vision.Common/0.15.1-beta.1) | | GitHub [0.15.1-beta.1](https://msasg.visualstudio.com/Skyman/_git/Carbon) | | Voice Live | NuGet [1.0.0](https://www.nuget.org/packages/Azure.AI.VoiceLive/1.0.0) | [docs](/dotnet/api/overview/azure/AI.VoiceLive-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.VoiceLive_1.0.0/sdk/ai/Azure.AI.VoiceLive/) | diff --git a/docs/azure/sdk/authentication/system-assigned-managed-identity.md b/docs/azure/sdk/authentication/system-assigned-managed-identity.md index 6aade0f41920a..6cdf2404004b8 100644 --- a/docs/azure/sdk/authentication/system-assigned-managed-identity.md +++ b/docs/azure/sdk/authentication/system-assigned-managed-identity.md @@ -3,7 +3,7 @@ title: Authenticate Azure-hosted .NET apps to Azure resources using a system-ass description: Learn how to authenticate Azure-hosted .NET apps to other Azure services using a system-assigned managed identity. ms.topic: how-to ms.custom: devx-track-dotnet, engagement-fy23, devx-track-azurecli -ms.date: 02/06/2025 +ms.date: 11/10/2025 --- # Authenticate Azure-hosted .NET apps to Azure resources using a system-assigned managed identity diff --git a/docs/azure/sdk/includes/implement-system-assigned-identity.md b/docs/azure/sdk/includes/implement-system-assigned-identity.md index adcb6341d5ee1..725eb2634295f 100644 --- a/docs/azure/sdk/includes/implement-system-assigned-identity.md +++ b/docs/azure/sdk/includes/implement-system-assigned-identity.md @@ -1,6 +1,6 @@ --- ms.topic: include -ms.date: 02/12/2025 +ms.date: 11/10/2025 --- [!INCLUDE [implement-managed-identity-concepts](implement-managed-identity-concepts.md)] @@ -30,19 +30,10 @@ Azure services are accessed using specialized client classes from the various Az 1. Include the `Azure.Identity` and `Microsoft.Extensions.Azure` namespaces via `using` directives. 1. Register the Azure service client using the corresponding `Add`-prefixed extension method. -1. Pass an appropriate `TokenCredential` instance to the `UseCredential` method: - - Use `DefaultAzureCredential` when your app is running locally. - - Use `ManagedIdentityCredential` when your app is running in Azure. +1. Use an appropriate `TokenCredential` instance for the environment in which your app is running. When your app is running: + - In Azure, pass an instance of `ManagedIdentityCredential` to the `UseCredential` method. `ManagedIdentityCredential` discovers your managed identity configurations to authenticate to other services automatically. + - On your local development machine, an instance of `DefaultAzureCredential` is created on your behalf. Call `UseCredential` only if you want to [customize `DefaultAzureCredential`](../authentication/credential-chains.md#how-to-customize-defaultazurecredential) or use a different credential. `DefaultAzureCredential` looks in the environment variables for an application service principal or at locally installed developer tools, such as Visual Studio, for a set of developer credentials. :::code language="csharp" source="../snippets/authentication/system-assigned-managed-identity/Program.cs" id="snippet_MIC_UseCredential"::: -An alternative to the `UseCredential` method is to provide the credential to the service client directly: - -:::code language="csharp" source="../snippets/authentication/system-assigned-managed-identity/Program.cs" id="snippet_MIC"::: - --- - -The preceding code behaves differently depending on the environment where it's running: - -- On your local development workstation, `DefaultAzureCredential` looks in the environment variables for an application service principal or at locally installed developer tools, such as Visual Studio, for a set of developer credentials. -- When deployed to Azure, `ManagedIdentityCredential` discovers your managed identity configurations to authenticate to other services automatically. diff --git a/docs/azure/sdk/includes/implement-user-assigned-identity.md b/docs/azure/sdk/includes/implement-user-assigned-identity.md index b7567a661ad4f..639409a1500b5 100644 --- a/docs/azure/sdk/includes/implement-user-assigned-identity.md +++ b/docs/azure/sdk/includes/implement-user-assigned-identity.md @@ -1,6 +1,6 @@ --- ms.topic: include -ms.date: 02/12/2025 +ms.date: 11/10/2025 --- [!INCLUDE [implement-managed-identity-concepts](implement-managed-identity-concepts.md)] @@ -30,9 +30,9 @@ Azure services are accessed using specialized client classes from the various Az 1. Include the `Azure.Identity` and `Microsoft.Extensions.Azure` namespaces via `using` directives. 1. Register the Azure service client using the corresponding `Add`-prefixed extension method. -1. Pass an appropriate `TokenCredential` instance to the `UseCredential` method: - - Use `DefaultAzureCredential` when your app is running locally - - Use `ManagedIdentityCredential` when your app is running in Azure and configure either the client ID, resource ID, or object ID. +1. Use an appropriate `TokenCredential` instance for the environment in which your app is running. When your app is running: + - In Azure, pass an instance of `ManagedIdentityCredential` to the `UseCredential` method and configure either the client ID, resource ID, or object ID. `ManagedIdentityCredential` discovers your managed identity configurations to authenticate to other services automatically. + - On your local development machine, an instance of `DefaultAzureCredential` is created on your behalf. Call `UseCredential` only if you want to [customize `DefaultAzureCredential`](../authentication/credential-chains.md#how-to-customize-defaultazurecredential) or use a different credential. `DefaultAzureCredential` looks in the environment variables for an application service principal or at locally installed developer tools, such as Visual Studio, for a set of developer credentials. ## [Client ID](#tab/client-id) @@ -51,10 +51,6 @@ The client ID is used to identify a managed identity when configuring applicatio :::code language="csharp" source="../snippets/authentication/user-assigned-managed-identity/Program.cs" id="snippet_MIC_ClientId_UseCredential"::: - An alternative to the `UseCredential` method is to provide the credential to the service client directly: - - :::code language="csharp" source="../snippets/authentication/user-assigned-managed-identity/Program.cs" id="snippet_MIC_ClientId"::: - ## [Resource ID](#tab/resource-id) The resource ID uniquely identifies the managed identity resource within your Azure subscription using the following structure: @@ -76,10 +72,6 @@ Resource IDs can be built by convention, which makes them more convenient when w :::code language="csharp" source="../snippets/authentication/user-assigned-managed-identity/Program.cs" id="snippet_MIC_ResourceId_UseCredential"::: - An alternative to the `UseCredential` method is to provide the credential to the service client directly: - - :::code language="csharp" source="../snippets/authentication/user-assigned-managed-identity/Program.cs" id="snippet_MIC_ResourceId"::: - ## [Object ID](#tab/object-id) A principal ID is another name for an object ID. @@ -97,13 +89,4 @@ A principal ID is another name for an object ID. :::code language="csharp" source="../snippets/authentication/user-assigned-managed-identity/Program.cs" id="snippet_MIC_ObjectId_UseCredential"::: - An alternative to the `UseCredential` method is to provide the credential to the service client directly: - - :::code language="csharp" source="../snippets/authentication/user-assigned-managed-identity/Program.cs" id="snippet_MIC_ObjectId"::: - --- - -The preceding code behaves differently depending on the environment where it's running: - -- On your local development workstation, `DefaultAzureCredential` looks in the environment variables for an application service principal or at locally installed developer tools, such as Visual Studio, for a set of developer credentials. -- When deployed to Azure, `ManagedIdentityCredential` discovers your managed identity configurations to authenticate to other services automatically. diff --git a/docs/azure/sdk/snippets/authentication/system-assigned-managed-identity/Program.cs b/docs/azure/sdk/snippets/authentication/system-assigned-managed-identity/Program.cs index 7ee24b5450ab2..f6757d8a5c01b 100644 --- a/docs/azure/sdk/snippets/authentication/system-assigned-managed-identity/Program.cs +++ b/docs/azure/sdk/snippets/authentication/system-assigned-managed-identity/Program.cs @@ -1,7 +1,5 @@ using Azure.Identity; using Microsoft.Extensions.Azure; -using Azure.Storage.Blobs; -using Azure.Core; var builder = WebApplication.CreateBuilder(args); @@ -11,42 +9,15 @@ clientBuilder.AddBlobServiceClient( new Uri("https://.blob.core.windows.net")); - TokenCredential credential = null; - - if (builder.Environment.IsProduction()) + if (builder.Environment.IsProduction() || builder.Environment.IsStaging()) { // Managed identity token credential discovered when running in Azure environments - credential = new ManagedIdentityCredential(); - } - else - { - // Running locally on dev machine - DO NOT use in production or outside of local dev - credential = new DefaultAzureCredential(); + ManagedIdentityCredential credential = new(ManagedIdentityId.SystemAssigned); + clientBuilder.UseCredential(credential); } - - clientBuilder.UseCredential(credential); }); #endregion snippet_MIC_UseCredential -#region snippet_MIC -TokenCredential credential = null; - -if (builder.Environment.IsProduction() || builder.Environment.IsStaging()) -{ - // Managed identity token credential discovered when running in Azure environments - credential = new ManagedIdentityCredential(); -} -else -{ - // Running locally on dev machine - DO NOT use in production or outside of local dev - credential = new DefaultAzureCredential(); -} - -builder.Services.AddSingleton(_ => - new BlobServiceClient( - new Uri("https://.blob.core.windows.net"), credential)); -#endregion snippet_MIC - var app = builder.Build(); if (app.Environment.IsDevelopment()) @@ -82,4 +53,4 @@ internal record WeatherForecast(DateOnly Date, int TemperatureC, string? Summary) { public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); -} \ No newline at end of file +} diff --git a/docs/azure/sdk/snippets/authentication/user-assigned-managed-identity/Program.cs b/docs/azure/sdk/snippets/authentication/user-assigned-managed-identity/Program.cs index 3a2211ece4eda..db10a2a61e26b 100644 --- a/docs/azure/sdk/snippets/authentication/user-assigned-managed-identity/Program.cs +++ b/docs/azure/sdk/snippets/authentication/user-assigned-managed-identity/Program.cs @@ -1,6 +1,5 @@ using Azure.Identity; using Microsoft.Extensions.Azure; -using Azure.Storage.Blobs; using Azure.Core; var builder = WebApplication.CreateBuilder(args); @@ -50,43 +49,15 @@ void registerUsingClientId(WebApplicationBuilder builder) clientBuilder.AddBlobServiceClient( new Uri("https://.blob.core.windows.net")); - TokenCredential credential = null; - if (builder.Environment.IsProduction() || builder.Environment.IsStaging()) { // Managed identity token credential discovered when running in Azure environments - credential = new ManagedIdentityCredential( + ManagedIdentityCredential credential = new( ManagedIdentityId.FromUserAssignedClientId("")); + clientBuilder.UseCredential(credential); } - else - { - // Running locally on dev machine - DO NOT use in production or outside of local dev - credential = new DefaultAzureCredential(); - } - - clientBuilder.UseCredential(credential); }); #endregion snippet_MIC_ClientId_UseCredential - - #region snippet_MIC_ClientId - TokenCredential credential = null; - - if (builder.Environment.IsProduction() || builder.Environment.IsStaging()) - { - // Managed identity token credential discovered when running in Azure environments - credential = new ManagedIdentityCredential( - ManagedIdentityId.FromUserAssignedClientId("")); - } - else - { - // Running locally on dev machine - DO NOT use in production or outside of local dev - credential = new DefaultAzureCredential(); - } - - builder.Services.AddSingleton(_ => - new BlobServiceClient( - new Uri("https://.blob.core.windows.net"), credential)); - #endregion snippet_MIC_ClientId } void registerUsingObjectId(WebApplicationBuilder builder) @@ -97,43 +68,15 @@ void registerUsingObjectId(WebApplicationBuilder builder) clientBuilder.AddBlobServiceClient( new Uri("https://.blob.core.windows.net")); - TokenCredential credential = null; - if (builder.Environment.IsProduction() || builder.Environment.IsStaging()) { // Managed identity token credential discovered when running in Azure environments - credential = new ManagedIdentityCredential( + ManagedIdentityCredential credential = new( ManagedIdentityId.FromUserAssignedObjectId("")); + clientBuilder.UseCredential(credential); } - else - { - // Running locally on dev machine - DO NOT use in production or outside of local dev - credential = new DefaultAzureCredential(); - } - - clientBuilder.UseCredential(credential); }); #endregion snippet_MIC_ObjectId_UseCredential - - #region snippet_MIC_ObjectId - TokenCredential credential = null; - - if (builder.Environment.IsProduction() || builder.Environment.IsStaging()) - { - // Managed identity token credential discovered when running in Azure environments - credential = new ManagedIdentityCredential( - ManagedIdentityId.FromUserAssignedObjectId("")); - } - else - { - // Running locally on dev machine - DO NOT use in production or outside of local dev - credential = new DefaultAzureCredential(); - } - - builder.Services.AddSingleton(_ => - new BlobServiceClient( - new Uri("https://.blob.core.windows.net"), credential)); - #endregion snippet_MIC_ObjectId } @@ -145,46 +88,18 @@ void registerUsingResourceId(WebApplicationBuilder builder) clientBuilder.AddBlobServiceClient( new Uri("https://.blob.core.windows.net")); - TokenCredential credential = null; - if (builder.Environment.IsProduction() || builder.Environment.IsStaging()) { // Managed identity token credential discovered when running in Azure environments - credential = new ManagedIdentityCredential( + ManagedIdentityCredential credential = new( ManagedIdentityId.FromUserAssignedResourceId(new ResourceIdentifier(""))); + clientBuilder.UseCredential(credential); } - else - { - // Running locally on dev machine - DO NOT use in production or outside of local dev - credential = new DefaultAzureCredential(); - } - - clientBuilder.UseCredential(credential); }); #endregion snippet_MIC_ResourceId_UseCredential - - #region snippet_MIC_ResourceId - TokenCredential credential = null; - - if (builder.Environment.IsProduction() || builder.Environment.IsStaging()) - { - // Managed identity token credential discovered when running in Azure environments - credential = new ManagedIdentityCredential( - ManagedIdentityId.FromUserAssignedResourceId(new ResourceIdentifier(""))); - } - else - { - // Running locally on dev machine - DO NOT use in production or outside of local dev - credential = new DefaultAzureCredential(); - } - - builder.Services.AddSingleton(_ => - new BlobServiceClient( - new Uri("https://.blob.core.windows.net"), credential)); - #endregion snippet_MIC_ResourceId } internal record WeatherForecast(DateOnly Date, int TemperatureC, string? Summary) { public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); -} \ No newline at end of file +} diff --git a/docs/core/porting/includes/github-copilot-suggestion.md b/docs/core/porting/includes/github-copilot-suggestion.md index 1f413f4860abb..bf8200aa3d5f9 100644 --- a/docs/core/porting/includes/github-copilot-suggestion.md +++ b/docs/core/porting/includes/github-copilot-suggestion.md @@ -1,9 +1,9 @@ --- author: adegeo ms.author: adegeo -ms.date: 09/23/2025 +ms.date: 11/07/2025 ms.topic: include --- > [!IMPORTANT] -> Try the [GitHub Copilot app modernization chat agent](../github-copilot-app-modernization/overview.md). This agent analyzes your projects and dependencies, produces a step-by-step migration plan with targeted recommendations and automated code fixes, and commits each change so you can validate or roll back. It automates common porting tasks—updating project files, replacing deprecated APIs, and resolving build issues—so you can modernize faster with less manual effort. For more information, see [What is GitHub Copilot app modernization](../github-copilot-app-modernization/overview.md). +> .NET Upgrade Assistant is officially deprecated. Use the [GitHub Copilot app modernization chat agent](../github-copilot-app-modernization/overview.md) instead, which is included with Visual Studio 2026 and Visual Studio 2022 17.14.16 or later. This agent analyzes your projects and dependencies, produces a step-by-step migration plan with targeted recommendations and automated code fixes, and commits each change so you can validate or roll back. It automates common porting tasks—updating project files, replacing deprecated APIs, and resolving build issues—so you can modernize faster with less manual effort. diff --git a/docs/core/porting/upgrade-assistant-how-to-analyze.md b/docs/core/porting/upgrade-assistant-how-to-analyze.md index afc1f1c76b59b..3bf3c9bd070af 100644 --- a/docs/core/porting/upgrade-assistant-how-to-analyze.md +++ b/docs/core/porting/upgrade-assistant-how-to-analyze.md @@ -14,6 +14,8 @@ ms.date: 10/08/2024 This article teaches you how to perform code analysis on your projects with .NET Upgrade Assistant, using Visual Studio or the terminal. The analysis generates a report that you can browse to get more information about the upgrade. +[!INCLUDE [github-copilot-suggestion](includes/github-copilot-suggestion.md)] + ## Prerequisites - For Visual Studio, see [Install .NET Upgrade Assistant - Visual Studio extension](upgrade-assistant-install.md#visual-studio-extension). diff --git a/docs/core/porting/upgrade-assistant-how-to-upgrade.md b/docs/core/porting/upgrade-assistant-how-to-upgrade.md index 6d266124364ba..9806ecc1174c4 100644 --- a/docs/core/porting/upgrade-assistant-how-to-upgrade.md +++ b/docs/core/porting/upgrade-assistant-how-to-upgrade.md @@ -14,6 +14,8 @@ ms.date: 10/08/2024 The focus of this article is to provide the basic steps to upgrade a project with .NET Upgrade Assistant. This involves initiating the upgrade and reviewing the results. Based on how complex your project is, you might be required to perform manual updates to your code. +[!INCLUDE [github-copilot-suggestion](includes/github-copilot-suggestion.md)] + Some project types have specific guidance on upgrading. For more information, see [Supported project types](upgrade-assistant-overview.md#supported-project-types). ## Prerequisites diff --git a/docs/core/porting/upgrade-assistant-overview.md b/docs/core/porting/upgrade-assistant-overview.md index 5260ab914191b..5e594bc89e5a5 100644 --- a/docs/core/porting/upgrade-assistant-overview.md +++ b/docs/core/porting/upgrade-assistant-overview.md @@ -22,22 +22,6 @@ ms.date: 10/08/2024 .NET Upgrade Assistant includes an analysis engine that scans your projects and their dependencies. After the scan is complete, a report is generated with detailed information about performing an upgrade. You can use this information to upgrade either the entire project or specific parts of the project. - - ## Supported project types .NET Upgrade Assistant supports upgrading projects coded in either C# or Visual Basic. The following types of projects are supported: diff --git a/docs/core/porting/upgrade-assistant-telemetry.md b/docs/core/porting/upgrade-assistant-telemetry.md index 4168be61f7309..be68747e9d2b9 100644 --- a/docs/core/porting/upgrade-assistant-telemetry.md +++ b/docs/core/porting/upgrade-assistant-telemetry.md @@ -8,6 +8,8 @@ ms.date: 05/22/2023 The [Upgrade Assistant](./upgrade-assistant-overview.md) includes a telemetry feature that collects usage data. The telemetry data is used to help understand how to make improvements to the tool. +[!INCLUDE [github-copilot-suggestion](includes/github-copilot-suggestion.md)] + ## How to opt out The Upgrade Assistant telemetry feature is enabled by default. To opt out of the telemetry feature, set the `DOTNET_UPGRADEASSISTANT_TELEMETRY_OPTOUT` environment variable to `1` or `true`. diff --git a/docs/core/porting/upgrade-assistant-wcf.md b/docs/core/porting/upgrade-assistant-wcf.md index 2552866ed2151..ce83e021f761a 100644 --- a/docs/core/porting/upgrade-assistant-wcf.md +++ b/docs/core/porting/upgrade-assistant-wcf.md @@ -14,6 +14,8 @@ The .NET Upgrade Assistant is a command-line tool that can assist with upgrading - A demonstration of how to run the tool against a WCF Server-side project on .NET Framework. - Troubleshooting tips. +[!INCLUDE [github-copilot-suggestion](includes/github-copilot-suggestion.md)] + ## Things to know before starting This tool currently supports C# projects and uses [CoreWCF](https://github.com/corewcf/corewcf) to port self-hosted WCF Server-side projects to .NET 6. diff --git a/docs/framework/release-notes/2025/10-14-october-cumulative-update.md b/docs/framework/release-notes/2025/10-14-october-cumulative-update.md index 220281de0cac5..13547fd4da9f7 100644 --- a/docs/framework/release-notes/2025/10-14-october-cumulative-update.md +++ b/docs/framework/release-notes/2025/10-14-october-cumulative-update.md @@ -14,9 +14,9 @@ _Released October 14, 2025_ ### Security improvements -#### CVE-2025-21176 – Remote Code Execution vulnerability +#### CVE-2025-55248 – Information Disclosure vulnerability -This security update addresses a remote code execution vulnerability detailed in [CVE 2025-21176](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-21176). +This security update addresses an information disclosure vulnerability detailed in [CVE 2025-55248](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-55248). ### Quality and reliability improvements diff --git a/docs/framework/release-notes/2025/10-28-october-cumulative-update-preview.md b/docs/framework/release-notes/2025/10-28-october-cumulative-update-preview.md index 3f3b38c530813..ba9b2fcfe2573 100644 --- a/docs/framework/release-notes/2025/10-28-october-cumulative-update-preview.md +++ b/docs/framework/release-notes/2025/10-28-october-cumulative-update-preview.md @@ -20,7 +20,7 @@ There are no new security improvements in this release. This update is cumulativ #### .NET Runtime -Addresses an issue to update operating systeam calls for compliance with current standards. (*Applies to: .NET Framework 4.8.1*) +Addresses an issue to update operating system calls for compliance with current standards. (*Applies to: .NET Framework 4.8.1*) ## Known issues in this release diff --git a/docs/visual-basic/language-reference/queries/join-clause.md b/docs/visual-basic/language-reference/queries/join-clause.md index 903ea51923ccb..a94706714b82c 100644 --- a/docs/visual-basic/language-reference/queries/join-clause.md +++ b/docs/visual-basic/language-reference/queries/join-clause.md @@ -22,7 +22,7 @@ Combines two collections into a single collection. The join operation is based o Join element In collection _ [ joinClause _ ] [ groupJoinClause ... _ ] -On key1 Equals key2 [ And key3 Equals key4 [... ] +On key1 Equals key2 [ And key3 Equals key4 [... ] ] ``` ## Parts