在工程中添加一个WEB引用(和添加普通引用基本相同),会给你生成一堆代码,然后直接调用就可以了。WS一般来说没有安全机制,这个需要自己实现,比如自己模拟产生一个SessionID放在数据库中,在调用的时候传进来,然后WS先验证这个ID是否有效来做到对访问安全的控制。

解决方案 »

  1.   

    可以使用在 SOAP 标头中附加自己的特殊验证信息来控制对WebService的访问权限。
    参看MSDN中“SOAP 标头”、“SoapHeader”主题
    ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/cpguide/html/cpconusingsoapheaders.htm
      

  2.   

    访问一个webservice只要在WinForm项目中添加web引用就可以了,VS.NET自动生成该webservice的本地映射,你直接调用就可以了(想了解细节可以看看自动生成的代码)。
      

  3.   

    WinForm中引用一个WebService,可以通过soapheader加密的形式要求用户每次调用都输入用户名和密码(现在wap项目的webservice大部分都是采用这种方法加密的),你也可以通过将webservice进行uddi注册的形式进行保护
      

  4.   

    微软有自己的WebService 的安全相关产品,像 WSE2.0 不就是做service 安全的吗?
      

  5.   

    在winform里添加web引用就可以了。第二个问题我也不会:)帮你up
      

  6.   

    添加一个Web引用就可以了
    在你的WEBSERVICE实例化的对象里传入一个基于密码的身份验证方案
    NetworkCredential("administrator","pass");
      

  7.   

    添加一个Web引用的话,还是有些问题。
    比如Web services的url就被固定死了。
    我一般是用wsdl生成一个proxy类,命令是 wsdl /nologo /o:输出文件名 web services的url
    然后在构造函数中将url赋值给base.Url
    例如
    Class Proxy
    {
        public Proxy(string url)
       {
            //当然这里可以做效验,也可以从config文件中来,就比较灵活了。
            base.Url = url;
       }
    }
    使用Web引用的第二个问题是当你的WebMethod的返回值或者参数中有自己的型别时,会自动又给你生成一个,这个时候往往比较讨厌。
      

  8.   

    SmartClient
    http://www.windowsforms.net/Default.aspx?tabindex=8&tabid=3
    http://www.windowsforms.net/Applications/application.aspx?PageID=20&tabindex=8