能力越大,责任越大!

--因为责任,我们才能勇敢,因为责任,我们才能无私,也因为责任 ,我们才有了不断前进的动力

在ASP.NET中调用基于HTTP基本认证的WebService接口

在ASP.NET中调用基于HTTP基本认证的WebService接口的方法:
1、先用WSDL.EXE工具生成接口的代理类。
2、在代理类中重载GetWebRequest方法
    protected override System.Net.WebRequest GetWebRequest(Uri uri)
    {
        HttpWebRequest 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);//将验证信息添加到HTTP头
            }
            else
            {
                throw new ApplicationException("No network credentials");
            }
        }
        return request;
    }

3、在客户端使用以下方式进行调用:
        WebService service = new WebService();//代理类
        NetworkCredential netCredential = new NetworkCredential("test", "test");//创建网络标识,此处填写用户名和密码
        Uri uri = new Uri(service.Url);
        ICredentials credentials = netCredential.GetCredential(uri, "Basic");
        service.Credentials = credentials;
        service.PreAuthenticate = true;
        service.Method();

posted on 2008-03-25 10:51 HZM 阅读(61) 评论(0)  编辑 收藏


标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-03-25 11:08 编辑过


相关链接: