我用.net写的一个webservice放在IIS上,开始是默认访问,用delphi调用没问题,现在改成了windows身份验证了,每次调用webservice总要求输入用户名/密码对,觉得总用一种方法可以将用户名/密码对写在程序里,好像是要加个soap header什么的。不懂,请教

解决方案 »

  1.   

    Windows 身份验证和授权 使用对 .aspx 页所采用的方法,通过 Windows 身份验证来保证 XML Web 服务的安全性(详见基于 Windows 的身份验证一节)。若需要身份验证,请在 IIS 管理控制台中为您的应用程序启用“集成的 Windows 身份验证”,并禁用“匿名访问”。若要允许或拒绝特定的用户访问服务,请使用 ASP.NET 配置系统,或在服务文件本身中设置 ACL,如下例所示: <configuration>  <system.web>
        <authentication mode="Windows"/>
      </system.web>  <location path="secureservice.asmx">    <system.web>
          <authorization>
            <allow users="Administrator"/>
            <allow users="DOMAIN\Bradley"/>
            <deny roles="BUILTIN\Power Users"/>
          </authorization>
        </system.web>  </location></configuration>这非常适合已知 XML Web 服务的客户端将作为某个特定 Windows 用户运行的情况。
      

  2.   

    有用代码实现的方法吗?因为我看到过直接用C#调用,当然是撇开了webconfig配置。所以我想delphi应该也有对应的方法
      

  3.   

    这是我找到的帖子,里面有c#调用的代码,有谁知道相同功能的delphi代码呢?谢谢
    http://search.csdn.net/Expert/topic/1642/1642379.xml?temp=.1413233
      

  4.   

    HTTPRIO控件的HTTPWEBNODE属性下有PASSWORD和USERNAME,你设置一下看看,可不可以
      

  5.   

    好像还是不行,看到wsdl import wizard里有个options选项,有个connection tag,但不知道如何填写,试过几回都没成功。有人用过这个选项吗?