C# Webclient 和 Httpclient如何通过iis authentication 身份验证。
前言:
该博客产生的背景是客户那边有部署网站的方法是iis windows authentication身份验证,而系统中使用Webclient来调用别的系统的方法。在此情况下,原本可以使用的功能,都不能调用方法了,返回结果是401。在经过艰难地查找资料之后,也没有找到很好的方法来解决。找到的几个方法也不能很好的解决我的问题(实际这些方法都是有用的,但是还是不能完全解决我的问题,导致我在开始解决这个问题的时候走了好多的弯路),下面就先把这些方法说一下,思路都是要通过验证:
1,设置client.UseDefaultCredentials = true;
一般该而言都是有效的,最后我也使用了这个方法,但是我的情况还需要其它的修改。这个稍后再说。
还可以使用client.Credentials = CredentialCache.DefaultCredentials;据说2个方法是等效的。
2,设置client.Credentials = new System.Net.NetworkCredential("****", "***");分别填入该部署服务器的用户名和密码,这个方法是直接可行的,但对我而言不太现实,首先客户愿不愿意把帐号和密码写到配置你不说,而且他们也不是太懂代码,写了之后换密码,换人维护项目都不是太好的选择方案。因此当时暂时被我放弃,想着如果找不到好的解决方案的话,最后没有办法就使用这个方法。
3,此外还找了一些其它的方法,但几乎没有什么用处,就不在这里一一列举了。
在经过艰难,痛苦和绝望之后,我现在是和iss authentication设置有关,由于没有客户那边的环境,我这边的环境也是自己搭建的,找了好多最后终于找到一篇文章,按照上面说法需要把
NTLM放在第一位,具体的原理也不是太清楚。当时环境是自己搭建的,所以也不是很懂,但是在把NTLM放在第一位后,加上第一种的验证方式,终于可以用ip的方式来调用方法。

把代码发给客户以后,客户的确没有再提这个问题了,但是域名方式不知道在客户那能不能使用。自己本地因为使用hosts来模拟的是不行的,想用花生壳来模拟下,但是要注册就暂时没搞了。
C# Webclient 和 Httpclient如何通过iis authentication 身份验证。的更多相关文章
- C# 在iis windows authentication身份验证下,如何实现域用户自动登录
前言: 该博文产生的背景是有个项目在客户那部署方式为iis windows身份验证,而客户不想每次登录系统都要输入帐号和密码来登录. 因此需要得到域用户,然后进行判断该用户是否可以进入系统. 解决方法 ...
- 【记录】ASP.NET MVC 4/5 Authentication 身份验证无效
在 ASP.NET MVC 4/5 应用程序发布的时候,遇到一个问题,在本应用程序中进行身份验证是可以,但不能和其他"二级域名"共享,在其他应用程序身份验证,不能和本应用程序共享, ...
- Android 与 IIS服务器身份验证
1)基础验证: /** * 从服务器取图片 * * @param url * @return */ public void getHttpBitmap(final String url) { new ...
- shiro实战系列(五)之Authentication(身份验证)
建议学习shiro读读官方文档,虽然不一定读的懂,但是建议要大致浏览,心中有个大概,这样对于学习还是有一定帮助 官网地址:https://shiro.apache.org/ Authenticatio ...
- [转]IIS的各种身份验证详细测试
本文转自:http://www.cnblogs.com/chnking/archive/2007/11/20/965553.html#_Toc183326163 一. IIS的身份验证概述 1. ...
- IIS身份验证和文件操作权限(一、身份验证配置)
最近有一个项目服务器需要升级,主要是Web项目.因为以前是只写代码,不管发布.所以在环境构筑方面就出现自己的知识盲点.盲点一:IIS的身份验证的作用盲点二:IIS的身份验证和文件操作权限的关系(重点) ...
- HttpRequest,WebRequest,HttpWebRequest,WebClient,HttpClient 之间的区别
HttpRequest,WebRequest,HttpWebRequest,WebClient,HttpClient 今天我们来聊一下他们之间的关系与区别. HttpRequest 类 .NET Fr ...
- 发布Restful服务时出现IIS 指定了身份验证方案错误时的解决方案(IIS specified authentication schemes)
发布RESTful服务,当访问.svc文件时出现如下错误时: IIS 指定了身份验证方案“IntegratedWindowsAuthentication, Anonymous”,但绑定仅支持一种身份验 ...
- webrequest、httpwebrequest、webclient、HttpClient 四个类的区别
一.在 framework 开发环境下: webrequest.httpwebreques 都是基于Windows Api 进行包装, webclient 是基于webrequest 进行包装:(经 ...
随机推荐
- ZJOI2017 Day2
私のZJOI Day2 2017-3-22 08:00:07 AtCoder试题选讲 SYC(Sun Yican) from Shaoxing No.1 High School 2017-3-22 0 ...
- UIImageView帧动画相关属性和方法
@property(nonatomic,copy) NSArray *animationImages; 需要播放的序列帧图片数组(里面都是UIImage对象,会按顺序显示里面的图片) @propert ...
- bzoj3531——树链剖分+动态开点线段树
3531: [Sdoi2014]旅行 Time Limit: 20 Sec Memory Limit: 512 MB Description S国有N个城市,编号从1到N.城市间用N-1条双向道路连 ...
- 机器学习:Python中如何使用支持向量机(SVM)算法
(简单介绍一下支持向量机,详细介绍尤其是算法过程可以查阅其他资) 在机器学习领域,支持向量机SVM(Support Vector Machine)是一个有监督的学习模型,通常用来进行模式识别.分类(异 ...
- Project下载提示检索 COM 类工厂中 CLSID 为 {36D27C48-A1E8-11D3-BA55-00C04F72F325} 的组件失败
做后台系统导出Project时,部署到服务器提示:检索 COM 类工厂中 CLSID 为 {36D27C48-A1E8-11D3-BA55-00C04F72F325} 的组件失败,原因是出现以下错误: ...
- smokeping安装部署最佳实践
1.1安装smokeping [root@linux-node2 ~]# cat /etc/redhat-release #查看服务器信息 CentOS release 6. ...
- 【Egret】Lakeshore 使用中的一些疑难解决技巧!
用Lakeshore 1.2.1版本发布的html,会出现一些用户不想要的东西,下面讲讲如何去掉: 一.问题:游戏或者动画在PC端也能跟随游览器自适应. 解决方法:①找到发布文件下的 egret_l ...
- Android中启动页ViewPager和ViewFlipper带指示器
版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 首先我们来分析一下,想要实现启动页的功能,大家第一个想到的就是使用ViewPager,使用ViewPager确实是一种比 ...
- 利用php数组函数进行函数式编程
因为一个BUG, 我在一个摇摇欲坠,几乎碰一下就会散架的项目中某一个角落中发现下面这样一段代码 这段程序与那个BUG有密切的关系. 我来回反复的捉摸这段代码, 发现这段代码实现了两个功能 第一个是在一 ...
- python+robot framework实现测报告定制化和邮件发送
前面已经介绍了python+robot framework自动化框架和基本原理的实现,详情请看 python+robot framework接口自动化测试 本章主要讲解报告已经产生那如何以自动化的方式 ...