C# 如何在webservice中通过基本身份验证?
我有一个webservice,它有一个返回值的方法。这里我的要求是,我想在头中为每个web请求传递身份验证值,我使用下面给定的代码来执行相同的操作C# 如何在webservice中通过基本身份验证?,c#,asp.net,web-services,C#,Asp.net,Web Services,我有一个webservice,它有一个返回值的方法。这里我的要求是,我想在头中为每个web请求传递身份验证值,我使用下面给定的代码来执行相同的操作 req = WebRequest.Create(http://localhost/test/test.asmx); string _auth = string.Format("{0}:{1}", "username", "password"); string _enc = Convert.ToBase64String(Encoding.ASCII.G
req = WebRequest.Create(http://localhost/test/test.asmx);
string _auth = string.Format("{0}:{1}", "username", "password");
string _enc = Convert.ToBase64String(Encoding.ASCII.GetBytes(_auth));
string _cred = string.Format("{0} {1}", "Basic", _enc);
req.Headers[HttpRequestHeader.Authorization] = _cred;
WebResponse response = (WebResponse)req.GetResponse();
但通过这种方式,我无法调用webmethod。有没有办法做到这一点
此外,我还尝试在ICredentials的帮助下使用以下给定代码发送身份验证值,但我需要诸如“Authorization:Basic YWRtaW46YWRtaW4=”之类的头值
请让我知道是否有任何方法可以做到这一点。任何帮助都将不胜感激
感谢您从中复制
ICredentials creds;
creds = new
NetworkCredential("username", "password", "domain");
proxy.Credentials = creds;
string str=proxy.helloworld();
protected override System.Net.WebRequest GetWebRequest(Uri uri)
{
HttpWebRequest request;
request = (HttpWebRequest)base.GetWebRequest(uri);
if (PreAuthenticate)
{
NetworkCredential networkCredentials =
Credentials.GetCredential(uri, “Basic”);
if (networkCredentials != null)
{
byte[] credentialBuffer = new UTF8Encoding().GetBytes(
networkCredentials.UserName + “:” +
networkCredentials.Password);
request.Headers["Authorization"] =
“Basic” + Convert.ToBase64String(credentialBuffer);
}
else
{
throw new ApplicationException(“No network credentials”);
}
}
return request;
}