我有需要身份验证的网络服务。
public class WebService : System.Web.Services.WebService
{
public AuthHeader Authentication;
[WebMethod]
[SoapHeader("Authentication", Required = true)]
public void Hello(string name)
{
string result = "";
if (Authentication.Username == "test" && Authentication.Password == "test")
{
result = "hello " + name;
}
Context.Response.Write(new JavaScriptSerializer().Serialize(result));
}
}
public class AuthHeader : SoapHeader
{
public string Username;
public string Password;
}
我曾经像这样调用网络服务
WebRequest request = WebRequest.Create(url);
WebResponse ws = request.GetResponse();
string result = string.Empty;
using (System.IO.StreamReader sreader = new System.IO.StreamReader(ws.GetResponseStream()))
{
result = sreader.ReadToEnd();
}
但我不知道如何通过身份验证来实现。如何设置Web请求的标头以进行身份验证?
答案 0 :(得分:0)
根据此msdn资源:https://msdn.microsoft.com/en-us/library/system.net.webrequest(v=vs.110).aspx WebRequest
有一个名为Credentials
的属性。
在后代类中重写时,获取或设置网络 用于通过Internet验证请求的凭据 资源。
尝试使用它并查看它是否有效。