我遵循本指南将其设置为我的nuget-server:http://blog.fermium.io/nuget-server-with-basic-authentication/
对于我使用的完整授权解决方案,您可以在此处找到它:https://github.com/devbridge/azurepowertools/tree/master/devbridge.basicauthentication
它可以正常工作,在向我的Nuget服务器上冲浪时,我会登录,到目前为止效果很好。我还可以通过在Visual Studio中输入用户名/密码访问现有的Nuget软件包。
试图从Visual Studio推出Nuget包装时出现的问题,该工作室在将授权添加到Nuget-Server之前正常工作。
nuget.config(%appdata% nuget nuget.config)
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget.org" value="https://www.nuget.org/api/v2/" />
<add key="mynuget" value="http://mynuget.azurewebsites.net/nuget" />
</packageSources>
<activePackageSource>
<add key="All" value="(Aggregate source)" />
</activePackageSource>
<packageSourceCredentials>
<mynuget>
<add key="Username" value="mynugetUsername" />
<add key="ClearTextPassword" value="mynugetPassword" />
</mynuget>
</packageSourceCredentials>
</configuration>
nuget push c: temp packages*.nupkg -s http://mynuget.azurewebsites.net/apikey -verbosity详细信息
请提供:http://mynuget.azurewebsites.net/
system.invalidoperationException:无法在非交互模式下提示输入。
如何解决此问题?
当我在Visual Studio Package Manager Console窗口中运行相同的推送命令时,我会遇到相同的错误。因为"软件包管理器"控制台窗口是非交互模式窗口,我们在运行命令时无法键入任何参数。
所以我建议您使用命令提示符窗口推动包并运行nuget push命令。
我尚未找到对此的最佳解决方案,但是我做了一个解决方案,这可能对某人有帮助。仍在寻找一个更清洁,更好的解决方案。我最终允许在没有授权的情况下放置命令,因为它仍然需要Apikey推动包装。(请参阅下文)
public void AuthenticateUser(Object source, EventArgs e)
{
var context = ((HttpApplication)source).Context;
if (context.Request.HttpMethod != "PUT")
{
string authorizationHeader = context.Request.Headers[HttpAuthorizationHeader];
// Extract the basic authentication credentials from the request
string userName = null;
string password = null;
if (!this.ExtractBasicCredentials(authorizationHeader, ref userName, ref password))
{
return;
}
// Validate the user credentials
if (!this.ValidateCredentials(userName, password))
{
return;
}
}
// check whether cookie is set and send it to client if needed
var authCookie = context.Request.Cookies.Get(AuthenticationCookieName);
if (authCookie == null)
{
authCookie = new HttpCookie(AuthenticationCookieName, "1") { Expires = DateTime.Now.AddHours(1) };
context.Response.Cookies.Add(authCookie);
}
}
由此:https://github.com/devbridge/azurepowertools/tree/master/devbridge.basicauthentication