By using this site, you acknowledge that you have read and understand our Cookie policy, Privacy policy and Terms .
close

Background

In ASP.NET Core, we can easily use user secrets to manage our password or credentials. This post will summarize the approaches we can use after the websites are deployed into Azure.

Azure AppSettings & Connection Strings

In Azure management portal, navigate your App Services. And then in SETTINGS section, click on Application settings.
In App settings section, you can setup up any key way pairs:

image

In Connection strings section, you can setup all the connection strings:

image

You can also choose the connection type:

image

These settings are injected at run time.

Access App settings and Connection strings in your application

IConfiguration

All the configurations will be injected and can accessed through IConfiguration. You can directly add IConfiguration into your controller or services. You can also inject this directly into your views.

Sample code in Controller

using AzureWebAppTest.Models;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using System.Diagnostics;

namespace AzureWebAppTest.Controllers
{
     public class HomeController : Controller
     {
         private readonly IConfiguration configuration;

        public HomeController(IConfiguration configuration)
         {
             this.configuration = configuration;
         }

        public IActionResult Index()
         {
             var appSettingTest1 = configuration["appSettingTest1"];
             var connectionStringTest1 = configuration.GetConnectionString("connectionStringTest1");

            return Json(new { appSettingTest1, connectionStringTest1 });
         }

}

Sample configuration in Azure

image

Result in Azure website

image

Sample code in View

@{
     ViewData["Title"] = "Home Page";
     Layout = null;
}
@using Microsoft.Extensions.Configuration
@inject Microsoft.Extensions.Configuration.IConfiguration configuration

<p>appSettingTest1: @configuration["appSettingTest1"]</p>
<p>connectionStringTest1: @configuration.GetConnectionString("connectionStringTest1")</p>

Result in Azure website

image

Access through environment variables

All these settings are injected into environment variables and you can access them in other programming languages by adding some prefix:

For App settings, ‘APPSETTING_’ is added to each settings. and for connection strings, there are different prefixes added for different connection types:

  • SQL Server: SQLCONNSTR_
  • MySQL: MYSQLCONNSTR_
  • SQL Database: SQLAZURECONNSTR_
  • Custom: CUSTOMCONNSTR_

For more details, please refer to: https://docs.microsoft.com/en-us/azure/app-service/web-sites-configure

Update these settings in CI/CD environment

Instead of manually updating these settings through Azure management portal, you can also Azure Resource Manager PowerShell module to implement it in a continuous integration and deployment environment. Refer the following post for examples: https://blogs.msdn.microsoft.com/tfssetup/2016/05/20/accessingupdating-azure-web-app-settings-from-vsts-using-azure-powershell/

VSTS

If you are using Visual Studio online build and release functions, you can also just install some extensions available in Visual Studio marketplace. For instance, the following link provide you the functionality to configure App settings:

 https://marketplace.visualstudio.com/items?itemName=hboelman.AzureAppServiceSetAppSettings

info Last modified by Raymond at 3 years ago
info About author

info License/Terms

More from Kontext

local_offer kontext local_offer Azure

visibility 8
comment 0
thumb_up 0
access_time 1 month ago

From release v0.6.0, Kontext website now runs from a package (zip file) in Azure App Services. This ensures storage (incl. database storage, blob storage for uploaded files) is separated from the application and the application itself is read-only.&nbsp; Azure DevOps support I...

open_in_new View

local_offer Azure local_offer ssl

visibility 18
comment 0
thumb_up 0
access_time 2 months ago

Google Chrome browser will mark websites as insecure if HTTPS is not enabled. Certificate issuer To enable SSL on your Azure websites, you can purchase SSL certificates from many certificate authorities. Let’s Encrypt is a free, automated, and open Certificate Authority. ...

open_in_new View

Access Artifact BuildNumber in Azure DevOps Release Pipeline

local_offer devops local_offer Azure

visibility 14
comment 0
thumb_up 0
access_time 2 months ago

It might be useful to push artifact or build variables to your Azure websites environment variables in Release pipelines.

open_in_new View

local_offer kontext local_offer Azure

visibility 129
comment 0
thumb_up 4
access_time 3 months ago

From release v0.6.1, Kontext platform is server-less and cloud native with horizontal scalabilities.

open_in_new View