ASP核心无法在VS 2017中设置用户秘密

时间:2017-04-03 21:52:53

标签: c# asp.net-core .net-core visual-studio-2017

使用visual studio 2017,当我尝试设置用户密码时,我收到以下错误:

> dotnet user-secrets set Authentication:Google:ClientId mysecretclientid
> Could not find the global property 'UserSecretsId' in MSBuild project 'c:\test\myproj.csproj'. Ensure this property is set in the project or use the '--id' command line option.

我在Startup.cs中有这个:

[assembly: UserSecretsId("project-8084c8e7-0000-0000-b266-b33f42dd88c0")]

...

builder.AddUserSecrets<Startup>();

如果我将此添加到我的csproj:

  <PropertyGroup>
    <UserSecretsId>project-8084c8e7-0000-0000-b266-b33f42dd88c0</UserSecretsId>
  </PropertyGroup>

我收到错误说

Duplicate 'Microsoft.Extensions.Configuration.UserSecrets.UserSecretsIdAttribute'

我做错了什么?

4 个答案:

答案 0 :(得分:6)

在VS Code 2019中,您可以使用以下命令在csproj文件中生成UserSecret部分。运行命令时,请确保您位于包含所需csproj文件的目录中。

dotnet user-secrets init

答案 1 :(得分:4)

好的,所以我让它工作,看起来在VS 2017你应该删除&#34; [assembly: UserSecretsId("project-8084c8e7-0000-0000-b266-b33f42dd88c0")]&#34;属性并在csproj文件中包含以下内容:

<PropertyGroup>
    <UserSecretsId>project-8084c8e7-0000-0000-b266-b33f42dd88c0</UserSecretsId>
</PropertyGroup>

答案 2 :(得分:3)

我遇到了相同的错误,并通过生成一个新的UserSecretsId修复了该错误。

如果您在解决方案资源管理器中的项目上单击鼠标右键,然后按Manage User Secrets,将自动生成UserSecretsId。

答案 3 :(得分:0)

如果您使用外部缓存提供程序(例如redis),请将其放在.csproj文件中 <PropertyGroup><UserSecretsId>Redistest</UserSecretsId></PropertyGroup>
最重的是秘密名称。可能什么都可以。