调用web services提示Access Denied的解决办法[整理]

现象:
asp.net中调用web services时提示错误:
请求因   HTTP   状态   401   失败:Access   Denied。  

将web services放到另一台服务器问题又不存在该问题。

解决办法:
1.新建方法:
#region GetCredentialCache
/// <summary>
/// 获取CredentialCache
/// 解决访问web service时提示没有权限的问题
/// </summary>
/// <returns></returns>

public static CredentialCache GetCredentialCache()
{
 //权限验证web services地址
 string WSUrl = RightsServicesUrl;

 //Create an instance of the CredentialCache class.
 CredentialCache cache = new CredentialCache();

 // Add a NetworkCredential instance to CredentialCache.
 // Negotiate for NTLM or Kerberos authentication.

 cache.Add( new Uri(WSUrl), "Negotiate", new NetworkCredential("域用户名", "域密码", "域"));

 return cache;
}
#endregion

2.为web services指定CredentialCache
web services引用名为RightsControl,添加如下代码:

RightsControl rightsControl = new RightsControl();
//为web services指定CredentialCache,最重要的就是这一句
rightsControl.Credentials = GetCredentialCache();
//调用rightsControl的方法
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值