将用户名和密码传递给soap webservice

时间:2013-07-30 13:12:16

标签: c# web-services soap

我正在使用c#中的soap webservice。它看起来像这样:

public class MyService : System.Web.Services.WebService
{

public MyService()
{
}

[WebMethod]
public string Hello()
{

    return "hello";
}
}

我从其他网站添加了对此Web服务的服务引用,因此我可以使用代码从那里访问Hello()方法:

MyServiceSoapClient client = new MyServiceSoapClient();
client.Hello();

现在我需要将凭据传递给该Web服务。我试过了:

MyServiceSoapClient client = new MyServiceSoapClient();
    client.ClientCredentials.UserName.UserName = "test";
    client.ClientCredentials.UserName.Password = "pwd";
    client.Hello();

但我无法在网络服务中获取这些凭据(在Hello()方法中)。

如何在网络服务中获取这些值?

1 个答案:

答案 0 :(得分:1)

您通过WebService.User属性获取用户。这将为您提供用户名,但无法检索传递的密码,这是设计的,因为在运行WebService之前,身份验证在IIS级别进行。

public class MyService : System.Web.Services.WebService
{
    public MyService()
    {
    }

    [WebMethod]
    public string Hello()
    {
        return "hello, my name is " + User.Identity.Name;
    }
}