我正在使用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()
方法中)。
如何在网络服务中获取这些值?
答案 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;
}
}