我无法让我的客户端识别visual studio添加到代理类中的AuthHeaderValue。我看过很多示例,但没有找到解决此问题的方法。
肥皂类
public class AuthHeader : SoapHeader
{
public string Username;
public string Password;
}
网络服务
public class Service1 : System.Web.Services.WebService
{
public AuthHeader Authentication; ** where does visual studio append value to proxy
[SoapHeader("Authentication", Required = true)]
[WebMethod]
public string security()
{
if (Authentication.Username == "test" &&
Authentication.Password == "test")
{
return "authenticated";
}
else
{
return "get lost";
}
}
委托人
static void Main(string[] args)
{
ServiceReference1.AuthHeader auth = new ServiceReference1.AuthHeader();
auth.Username = "test";
auth.Password = "test";
ServiceReference1.Service1SoapClient ser = new ServiceReference1.Service1SoapClient();
ser.AuthHeaderValue = auth; ** does not reconise authheadervalue
String message = ser.security();
Console.WriteLine(message);
}
3条答案
按热度按时间vmpqdwk31#
您必须将验证参数值作为
TRUE
传递给头。请检查完整的解决方案herevkc1a9a22#
应用该代码
jogvjijk3#
试试这个
安全方法更改如下
在某个公共类或其他地方保存带有凭据方法
调用Web服务时,请使用上述方法对服务进行身份验证,如下所示