错误:命名空间“System.Web”中不存在类型或命名空间名称“Configuration”

aBl*_*aze 5 c# asp.net-mvc azure-active-directory azure-keyvault

我正在尝试使用https://learn.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;
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试将上面的代码添加到 ac# 类库中的类中,并修复该错误,我在以下线程中尝试了答案: https: //forums.asp.net/t/1205345.aspx ?The +type+or+namespace+name+Configuration+does+not+exist+in+the+namespace+System+Web+。建议的答案是:您需要通过“添加引用”对话框添加 System.Configuration DLL。右键单击“引用”并选择“添加引用”,然后选择“.NET”选项卡下的“System.Configuration”。

但是,当我尝试添加 System.Configuration DLL 作为参考时,我在列表中没有看到它。

请问在哪里可以找到这个 System.Configuration DLL?

==================更新======================

添加与程序集相关的屏幕截图。没有添加 System.Configuration 程序集的选项: 在此输入图像描述

在此输入图像描述

aBl*_*aze 5

原帖的两位评论者都是正确的。我只是在这里总结一下答案:

  1. 我需要创建一个 .NET Framework 类库,而不是 .NET Standard 类库,因为WebConfigurationManager它仅适用于 .NET Framework。 在此输入图像描述

  2. 右键单击类库的引用 -> 添加引用 -> 程序集 -> 查找两者System.Web.dllSystem.Configuration.dll-> 确定。

不再有错误!