我是一个团队,为客户提供内部NuGet Gallery。我们的客户希望在发布包时不需要apikeys。我们现在面临的一个大问题是使用命令行中的mirror命令。如果我没有输入Api密钥,它会要求输入用户名和密码,或者如果我设置了
<add key="Auth.ApiKey.Enabled" value="false"/>
然后每次都会要求输入用户名和密码。我可以看到它使用OwinContext来处理身份验证,但我不了解所有设置。
所以我的问题是:
我可以匿名发布吗?如果是这样,怎么样?我不知道如何禁用身份验证或使其以特定用户身份登录。我确实在ApiController的CreateInternalPackage方法中看到它正在调用:
var user = GetCurrentUser(); 因此,它需要能够获得某种用户对象。
非常感谢,帮派!
答案 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
...您甚至可以让配置文件特定于每个用户,然后将其作为选项加载。