调用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;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值