Skip to content

Commit df08c73

Browse files
authored
Merge pull request #294045 from maud-lv/ml-azcredqdotnet
Update quickstart-dotnet-app.md to use Microsoft Entra ID
2 parents 58c0d95 + fb1c382 commit df08c73

File tree

1 file changed

+76
-13
lines changed

1 file changed

+76
-13
lines changed

articles/azure-app-configuration/quickstart-dotnet-app.md

Lines changed: 76 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,16 @@ ms.service: azure-app-configuration
77
ms.devlang: csharp
88
ms.custom: devx-track-csharp, mode-other, devx-track-dotnet
99
ms.topic: quickstart
10-
ms.date: 05/24/2024
10+
ms.date: 02/04/2025
1111
ms.author: malev
1212
#Customer intent: As a .NET Framework developer, I want to manage all my app settings in one place.
1313
---
1414
# Quickstart: Create a .NET Framework app with Azure App Configuration
1515

1616
There are two ways to incorporate Azure App Configuration into a .NET Framework-based app.
1717

18-
- The configuration builder for App Configuration enables data from App Configuration to be loaded to App Settings. Your app accesses configuration as it always does via `ConfigurationManager`. You don't need to make any code change other than updates to *app.config* or *web.config* files. This quickstart will walk you through this option.
19-
- As is designed by the .NET Framework, the App Settings can only refresh upon application restart. The App Configuration .NET provider is a .NET Standard library. It supports caching and refreshing configuration dynamically without application restart. If the dynamic configuration is essential to you and you are willing to make code changes, see tutorials on how you can implement dynamic configuration updates in a [.NET Framework console app](./enable-dynamic-configuration-dotnet.md) or an [ASP.NET web app](./enable-dynamic-configuration-aspnet-netfx.md).
18+
- The configuration builder for App Configuration enables data from App Configuration to be loaded to App Settings. Your app accesses configuration as it always does via `ConfigurationManager`. You don't need to make any code change other than updates to *app.config* or *web.config* files. This quickstart walks you through this option.
19+
- As is designed by the .NET Framework, the App Settings can only refresh upon application restart. The App Configuration .NET provider is a .NET Standard library. It supports caching and refreshing configuration dynamically without application restart. If the dynamic configuration is essential to you and you're willing to make code changes, see tutorials on how you can implement dynamic configuration updates in a [.NET Framework console app](./enable-dynamic-configuration-dotnet.md) or an [ASP.NET web app](./enable-dynamic-configuration-aspnet-netfx.md).
2020

2121
In this quickstart, a .NET Framework console app is used as an example, but the same technique applies to an ASP.NET Web Forms/MVC app.
2222

@@ -45,33 +45,63 @@ Add the following key-value to the App Configuration store and leave **Label** a
4545

4646
## Connect to an App Configuration store
4747

48-
1. Right-click your project, and select **Manage NuGet Packages**. On the **Browse** tab, search and add the following NuGet packages to your project.
48+
Connect to your App Configuration store using Microsoft Entra ID (recommended), or a connection string.
4949

50-
- *Microsoft.Configuration.ConfigurationBuilders.AzureAppConfiguration* version 1.0.0 or later
51-
- *Microsoft.Configuration.ConfigurationBuilders.Environment* version 2.0.0 or later
52-
- *System.Configuration.ConfigurationManager* version 4.6.0 or later
50+
1. Right-click your project, and select **Manage NuGet Packages**. On the **Browse** tab, search and add the latest stable versions of following NuGet packages to your project.
5351

54-
1. Update the *App.config* file of your project as follows:
52+
- Microsoft.Configuration.ConfigurationBuilders.AzureAppConfiguration
53+
- Microsoft.Configuration.ConfigurationBuilders.Environment
54+
- System.Configuration.ConfigurationManager
5555

56+
1. Update the *App.config* file of your project as follows. You can connect to your App Configuration store using Microsoft Entra ID (recommended), or a connection string.
57+
58+
### [Microsoft Entra ID (recommended)](#tab/entra-id)
59+
60+
The `DefaultAzureCredential` is used to authenticate to your App Configuration store by default. Follow the [instructions](./concept-enable-rbac.md#authentication-with-token-credentials) to assign your credential the **App Configuration Data Reader** role. Be sure to allow sufficient time for the permission to propagate before running your application.
61+
5662
```xml
5763
<configSections>
5864
<section name="configBuilders" type="System.Configuration.ConfigurationBuildersSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" restartOnExternalChanges="false" requirePermission="false" />
5965
</configSections>
60-
66+
67+
<configBuilders>
68+
<builders>
69+
<add name="MyConfigStore" mode="Greedy" endpoint="${Endpoint}" type="Microsoft.Configuration.ConfigurationBuilders.AzureAppConfigurationBuilder, Microsoft.Configuration.ConfigurationBuilders.AzureAppConfiguration" />
70+
<add name="Environment" mode="Greedy" type="Microsoft.Configuration.ConfigurationBuilders.EnvironmentConfigBuilder, Microsoft.Configuration.ConfigurationBuilders.Environment" />
71+
</builders>
72+
</configBuilders>
73+
74+
<appSettings configBuilders="Environment,MyConfigStore">
75+
<add key="AppName" value="Console App Demo" />
76+
<add key="Endpoint" value ="Set via an environment variable - for example, dev, test, staging, or production endpoint." />
77+
</appSettings>
78+
```
79+
80+
The endpoint value of your App Configuration store is read from the environment variable `Endpoint`. You also add the `Environment` configuration builder before the `MyConfigStore` in the `configBuilders` property of the `appSettings` section.
81+
82+
### [Connection string](#tab/connection-string)
83+
84+
```xml
85+
<configSections>
86+
<section name="configBuilders" type="System.Configuration.ConfigurationBuildersSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" restartOnExternalChanges="false" requirePermission="false" />
87+
</configSections>
88+
6189
<configBuilders>
6290
<builders>
6391
<add name="MyConfigStore" mode="Greedy" connectionString="${ConnectionString}" type="Microsoft.Configuration.ConfigurationBuilders.AzureAppConfigurationBuilder, Microsoft.Configuration.ConfigurationBuilders.AzureAppConfiguration" />
6492
<add name="Environment" mode="Greedy" type="Microsoft.Configuration.ConfigurationBuilders.EnvironmentConfigBuilder, Microsoft.Configuration.ConfigurationBuilders.Environment" />
6593
</builders>
6694
</configBuilders>
67-
95+
6896
<appSettings configBuilders="Environment,MyConfigStore">
6997
<add key="AppName" value="Console App Demo" />
7098
<add key="ConnectionString" value ="Set via an environment variable - for example, dev, test, staging, or production connection string." />
7199
</appSettings>
72100
```
73-
74-
The connection string of your App Configuration store is read from the environment variable `ConnectionString`. Add the `Environment` configuration builder before the `MyConfigStore` in the `configBuilders` property of the `appSettings` section.
101+
102+
The connection string of your App Configuration store is read from the environment variable `ConnectionString`. You also add the `Environment` configuration builder before the `MyConfigStore` in the `configBuilders` property of the `appSettings` section.
103+
104+
---
75105

76106
1. Open *Program.cs*, and update the `Main` method to use App Configuration by calling `ConfigurationManager`.
77107

@@ -87,7 +117,33 @@ Add the following key-value to the App Configuration store and leave **Label** a
87117

88118
## Build and run the app
89119

90-
1. Set an environment variable named **ConnectionString** to the read-only key connection string obtained during your App Configuration store creation.
120+
1. Set an environment variable.
121+
122+
### [Microsoft Entra ID (recommended)](#tab/entra-id)
123+
124+
Set an environment variable named **Endpoint** to the endpoint of your App Configuration store found under the **Overview** of your store in the Azure portal.
125+
126+
If you use the Windows command prompt, run the following command and restart the command prompt to allow the change to take effect:
127+
128+
```cmd
129+
setx Endpoint "<endpoint-of-your-app-configuration-store>"
130+
```
131+
132+
If you use PowerShell, run the following command:
133+
134+
```powershell
135+
$Env:Endpoint = "<endpoint-of-your-app-configuration-store>"
136+
```
137+
138+
If you use macOS or Linux, run the following command:
139+
140+
```bash
141+
export Endpoint='<endpoint-of-your-app-configuration-store>'
142+
```
143+
144+
### [Connection string](#tab/connection-string)
145+
146+
Set an environment variable named **ConnectionString** to the read-only connection string of your App Configuration store found under **Access settings** of your store in the Azure portal.
91147

92148
If you use the Windows command prompt, run the following command:
93149

@@ -101,6 +157,13 @@ Add the following key-value to the App Configuration store and leave **Label** a
101157
$Env:ConnectionString = "<connection-string-of-your-app-configuration-store>"
102158
```
103159

160+
If you use macOS or Linux, run the following command:
161+
162+
```bash
163+
export ConnectionString='<connection-string-of-your-app-configuration-store>'
164+
```
165+
---
166+
104167
1. Restart Visual Studio to allow the change to take effect.
105168

106169
1. Press Ctrl + F5 to build and run the console app. You should see the message from App Configuration outputs in the console.

0 commit comments

Comments
 (0)