调用WebService时的401 Unauthorized问题

      今天在做WebService的调用时出现了这样一个问题:请求因 HTTP 状态 401 失败:Unauthorized

      一时我不知道怎么回事,上网查了些资料,原来是这样的。

      这个问题是出现在.net 2.0、IIS5的环境下在大部分的ASP.NET程序部署方案中,IIS的配置都会选择“目录安全性”为“匿名访问”,这样所有用户都可以轻松的访问WEB应用。我们也可以在WEB应用程序中,再调用WebService。
      不过在有域(domain)的局域网中,有时会需要WEB应用识别用户的身份,这时的IIS配置,就不能选择“匿名访问”了,而要选择“windows域服务器身份验证”,并且要选择一个默认的域。做了这样的修改以后,再要访问这个WEB应用,就必须输入域用户和密码了。当然你也可以把当前的站点添加到“受信任站点”里面,IE会自动帮你登录。这时问题出现了,在使用调用了WebService的功能的时候,页面提示异常:请求因 HTTP 状态 401 失败:Unauthorized
      这个问题的主要原因是,WEB应用没有把当前的凭据传给WebService,而WebService也需要用户的身份信息,因此报了“未授权”的错误。只要把WebService的实例对象的Credentials属性重新设置,问题解决了。
  ws_obj.Credentials = System.Net.CredentialCache.DefaultCredentials;

你可能感兴趣的:(Web,webservice,asp.net,domain,IIS,credentials)