C# 如何在webservice中通过基本身份验证?

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

我有一个webservice,它有一个返回值的方法。这里我的要求是,我想在头中为每个web请求传递身份验证值,我使用下面给定的代码来执行相同的操作

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;
}