Ошибка: тип или имя пространства имен Configuration не существует в пространстве имен System.Web

Я пытаюсь использовать следующий код из https://docs.microsoft.com/en-us/azure/key-vault/key-vault-use-from-web-application

//add these using statements
using Microsoft.IdentityModel.Clients.ActiveDirectory;
using System.Threading.Tasks;
using System.Web.Configuration;

//this is an optional property to hold the secret after it is retrieved
public static string EncryptSecret { get; set; }

//the method that will be provided to the KeyVaultClient
public static async Task<string> GetToken(string authority, string resource, string scope)
{
    var authContext = new AuthenticationContext(authority);
    ClientCredential clientCred = new ClientCredential(WebConfigurationManager.AppSettings["ClientId"],
            WebConfigurationManager.AppSettings["ClientSecret"]);
    AuthenticationResult result = await authContext.AcquireTokenAsync(resource, clientCred);

    if (result == null)
        throw new InvalidOperationException("Failed to obtain the JWT token");

    return result.AccessToken;
}

Я пытаюсь добавить приведенный выше код в класс в библиотеке классов С #, и, чтобы исправить ошибку, я попробовал ответить в следующем потоке: https://forums.asp.net/t/1205345.aspx?Тип+или+пространствоимен+имя+Конфигурация+не+не+существует+в+пространствеимен+System+Web+. Предлагаемый ответ был следующим: вам нужно добавить DLL System.Configuration через диалоговое окно «Добавить ссылку». Щелкните правой кнопкой мыши Ссылки и выберите Добавить ссылку, затем выберите System.Configuration на вкладке .NET.

Однако, когда я пытаюсь добавить DLL System.Configuration в качестве ссылки, я не вижу ее в списке.

Где мне найти эту DLL System.Configuration?

================== ОБНОВЛЕНИЕ ======================

Добавление скриншотов, относящихся к сборкам. Нет вариантов для добавления сборок System.Configuration:  введите описание изображения здесь

введите описание изображения здесь


person aBlaze    schedule 05.03.2018    source источник


Ответы (1)


Оба комментатора исходного сообщения были правы. Я просто собираюсь подытожить ответ здесь:

  1. Мне нужно было создать библиотеку классов .NET Framework, а не библиотеку классов .NET Standard, потому что WebConfigurationManager доступен только для .NET Framework. введите описание изображения здесь

  2. Щелкните правой кнопкой мыши ссылку библиотеки классов -> Добавить ссылку -> Сборки -> Найдите и System.Web.dll, и System.Configuration.dll -> ОК.

Больше никаких ошибок!

person aBlaze    schedule 06.03.2018