C# 添加服务引用、多凭证提示

C# 添加服务引用、多凭证提示,c#,wcf,web-services,credentials,discovery,C#,Wcf,Web Services,Credentials,Discovery,我在VS中启动了一个新的空白控制台应用程序项目(我使用的是VS2010),并选择向受用户名和密码保护的web服务添加服务引用 当我在对话框中单击Go时,我会遇到接受证书的Yes/No提示。我选择“是”,然后出现查找凭据提示,询问用户名和密码 如果我多次正确地输入这些(3+),我最终获得了对WSDL的访问权。或者,奇怪的是,如果我正确输入一次,然后取消,然后再次执行该过程,我的信用卡在第一次尝试时就被接受了 我问了谷歌,发现了一些与SQL reporting web services相关的实例,有

我在VS中启动了一个新的空白控制台应用程序项目(我使用的是VS2010),并选择向受用户名和密码保护的web服务添加服务引用

当我在对话框中单击Go时,我会遇到接受证书的Yes/No提示。我选择“是”,然后出现查找凭据提示,询问用户名和密码

如果我多次正确地输入这些(3+),我最终获得了对WSDL的访问权。或者,奇怪的是,如果我正确输入一次,然后取消,然后再次执行该过程,我的信用卡在第一次尝试时就被接受了

我问了谷歌,发现了一些与SQL reporting web services相关的实例,有人发表了类似的帖子,但似乎没有人给出明确的答案


有人能解释这种奇怪的行为吗?服务配置是否不正确,或者这是web服务或WCF服务的某种已知问题

我不确定这是否是答案,但我会发布这篇文章,以防对其他人有所帮助

从我所看到的情况来看,如果在向安全web服务添加web引用或服务引用时遇到连续的用户名+密码提示问题,并且您确定正确输入了凭据,请确保尝试两种方法:

1) 使用域\用户名与仅使用用户名

2) 在您至少正确输入一次凭据并再次收到提示后,在30-60秒内不要再做任何事了(我刚刚编造的,YMMV)。如果等待提示,然后单击“取消”,则服务引用可能正在等待您添加到项目中


据我所见,VisualStudio在有时间下载WSDL和/或生成代理类之前会很匆忙地重新提示您。

昨天在这方面做了很多努力&google除了发现其他人陷入同样的困惑之外帮不了什么忙

我可以在IE中很好地浏览wsdl,因此IE可以很好地传递凭据。因此,在大约5个小时的“wtf”之后,VS2010中的“为发现添加引用”对话框没有传递凭据。。。。错误消息表明服务器不允许匿名身份验证

“那么,它不会像IE那样提供我的凭证吗?”

嗯,也许不是。也许我以为会的。可能VS2010只需要匿名身份验证进行发现

检查我试图“发现”的SSRS服务时,发现匿名是不允许的

因此,在我的案例中,VS2010想要匿名身份验证以进行发现,并且似乎不想像IE那样提供凭据

因此,我在托管服务器上打开了IIS,为SSRS服务启用了匿名身份验证,并且VS2010停止显示无用的登录提示

服务引用已删除&代理已生成

我没有尝试禁用匿名访问,但我有一种感觉,因为我要在使用代理时将ClientCredentials传递给代理,所以在主机上禁用匿名访问是安全的


我猜VS2010只需要从该对话框进行匿名身份验证。它并没有像我想象的那样提供凭证。

我几乎遇到了同样的问题。需要提供3次以上的凭据,并且从未停止。 启用匿名并不是真正的解决方案。它不会要求提供凭证

解决方案(无匿名): -输入带有域信息的用户名。 在我的客户环境中,有两个域


(我认为)您三次收到提示是因为它在三个不同的url上执行一些发现操作。

我在尝试连接到安全的第三方web服务时遇到了相同的问题,尽管事实上我有凭据并且它们确实有效

我发现的一个解决方法是这样的——您似乎可以在发现URL中输入凭据,如下所示:

http://[username]:[password]@[serviceUrl]/service?wsdl
e、 g


当我使用“添加服务引用”对话框尝试此方法时,我不再获得这些凭证弹出窗口,代理类的创建也没有问题。

我今天偶然发现了类似的情况。我采取了许多变通办法,但都没有奏效。然后我尝试了一种新的方法:我没有输入,而是把它当作一个符咒来使用。

与vs 2008使用的方法相比,你似乎试图添加一个引用/错误地使用它。。这也可能是一个别名问题,当尝试使用Web服务url时,我遇到了一些问题,与我第一次开始使用我们公司在使用vs2010时创建的Web服务时类似,但在2008年设置同一引用时没有问题。我以前在第三方ASMX服务中看到过这一点,当时我正在使用2008。我现在看到的是第三方WCF服务,我在2010年。我的步骤如上所述,是否有更正确的流程我不知道?:-)我无法回答关于输入您的凭据的问题,因为我们在这里进行设置的方式。。它根据我们的网络登录进行身份验证,因此它更像是一个受信任的连接。。我想知道是否有其他人也看到了这个问题。最终,它起作用了。经过3x提示后,我可以使用该服务,但最初的发现过程似乎有点不确定。另一件奇怪的事情是:如果我只经历一次这个过程,然后到达WSDL,然后关闭VS,不保存我添加的服务引用,我可以重新打开VS,当我添加服务引用时(现在是ServiceReference2)这听起来很奇怪,除非创建Web服务的个人使用了某种愚蠢的多重验证方法。。我还想知道它是否必须首先处理完全限定登录/验证的问题。。全域用户名\密码是的,奇怪
http://bob1:password1@myservice.com/service?wsdl