NuGet Gallery匿名发布

时间:2015-05-26 20:20:28

标签: c# asp.net-web-api nuget owin

我是一个团队,为客户提供内部NuGet Gallery。我们的客户希望在发布包时不需要apikeys。我们现在面临的一个大问题是使用命令行中的mirror命令。如果我没有输入Api密钥,它会要求输入用户名和密码,或者如果我设置了

    <add key="Auth.ApiKey.Enabled" value="false"/>

然后每次都会要求输入用户名和密码。我可以看到它使用OwinContext来处理身份验证,但我不了解所有设置。

所以我的问题是:

  1. 我可以使用用户名/密码(在一个命令中)发布而不是使用apikey吗?
  2. 我可以匿名发布吗?如果是这样,怎么样?我不知道如何禁用身份验证或使其以特定用户身份登录。我确实在ApiController的CreateInternalPackage方法中看到它正在调用:

    var user = GetCurrentUser(); 因此,它需要能够获得某种用户对象。

  3. 非常感谢,帮派!

1 个答案:

答案 0 :(得分:4)

如果您真的想匿名发布,那么最好建立自己的自定义包存储: https://docs.nuget.org/create/hosting-your-own-nuget-feeds

这样,您可以配置所需的任何安全性。

否则,如果您尝试发布到Nuget.org,那么进行匿名身份验证将是一个坏主意,因为它会允许任何人(包括黑客)用潜在危险的代码覆盖您的包。

您可以在Nuget.config文件中探索设置用户名/密码: https://docs.nuget.org/consume/nuget-config-file

我不知道您如何发布的详细信息,但我知道push命令使用Nuget.config文件: https://docs.nuget.org/consume/command-line-reference#push-command-options

...您甚至可以让配置文件特定于每个用户,然后将其作为选项加载。