我正在测试WCF的CustomUserNamePassword Validator,到目前为止它只有在我验证用户名测试和密码测试时才有效。如果我使用其他内容,例如test1作为用户名,test1作为密码,则会抛出FaultException。以下是验证器的代码:
public override void Validate(string userName, string password)
{
if (userName != "test" || password != "test")
throw new FaultException("Username and Password Failed");
}
我正在使用控制台应用程序连接到IIS托管服务,我正在调用实例化这样的凭据:
client.ClientCredentials.UserName.UserName = "test";
client.ClientCredentials.UserName.Password = "test";
以上是有效的,但是如果我将验证器硬编码为类似test1和test1的东西,那么:
client.ClientCredentials.UserName.UserName = "test1";
client.ClientCredentials.UserName.Password = "test1";
即使我有以下情况,上述内容也会失败:
public override void Validate(string userName, string password)
{
if (userName != "test1" || password != "test1")
throw new FaultException("Username and Password Failed");
}
我正在使用svcutil构建app.config和ProxyCode。这与它有什么关系吗?我确实重新生成了代码。
我弄清楚问题是什么。我有3个解决方案(一个WCF服务库,一个使用服务库的WCF网站,以及一个控制台应用程序,它具有从WCF服务网站url wsdl生成的代码)。我正在更新WCF服务库和控制台应用程序,但我没有更新该网站的参考。一旦我这样做,一切正常。
感谢您的帮助。
答案 0 :(得分:1)
[更新的答案,我误解了这个问题]
服务器端是否正在重新部署?您可以尝试更新应用程序,或尝试将调试器附加到服务器端,以查看是否正在运行正确的代码。