Web服务客户端身份验证

时间:2010-06-02 08:27:27

标签: c# .net web-services

我想使用c#.net客户端来使用基于Java的Web服务。

问题是,我无法对服务进行身份验证。

它无法解决这个问题:

mywebservice.Credentials = new System.Net.NetworkCredential(userid, userpass);

我尝试为我的客户端方法编写基类。

public class ClientProtocols : SoapHttpClientProtocol
    {
        protected override WebRequest GetWebRequest(Uri uri)
        {
            System.Net.WebRequest request = base.GetWebRequest(uri);
            if (null != Credentials)
                request.Headers.Add("Authorization", GetAuthHeader());
            return request;
        }
        protected override WebResponse GetWebResponse(WebRequest request)
        {
            WebResponse response = base.GetWebResponse(request);
            return response;
        }
        private string GetAuthHeader()
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("Basic ");
            NetworkCredential cred = Credentials.GetCredential(new Uri(Url), "Basic");
            string s = string.Format("{0}:{1}", cred.UserName, cred.Password);
            sb.Append(Convert.ToBase64String(Encoding.ASCII.GetBytes(s)));
            return sb.ToString();
        }
    }

如何使用此类并授权Web服务?我在哪里把这个课程放在解决方案中?

感谢。

1 个答案:

答案 0 :(得分:-2)

我已经解决了我的问题:

http://www.xtremevbtalk.com/showthread.php?t=299559