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 进行包装:(经 ...
随机推荐
- datagrid-detailview.js easyui表格嵌套
datagrid-detailview.js easyui表格嵌套
- ASP.NET Core:CMD命令行+记事本 创建Console程序和Web Application
今天看了Scott关于ASP.NET Core的介绍视频,发现用命令行一步一步新建项目.添加Package.Restore.Build.Run 执行的实现方式,更让容易让我们了解.NET Core的运 ...
- HTTP协议(二)
一.请求的格式: (一).请求行 (1).请求方法 1.GET 2.POST 3.PUT 4.DELETE 5.TRACE 6.OPTIONS (2).请求路径 (3).所用的协议 (二).请求头信息 ...
- ABP框架实战 1.基础信息维护
在之前的一个开发项目中,因为公司战略发展,引用了这个ABP开源框架作为新项目的基础版本,由于客户的要求需要迁移旧系统数据,以及其他的一些原因,数据库采用了Oracle数据库管理.所以引用了Dapper ...
- Access SQL实现连续及不连续Rank排名
一.关于起因 在Excel中我们经常使用Rank函数对数据进行排名操作.而在Access中我们要进行排名是找不到这个Rank函数的,此时我们需要自己书写VBA代码或者建立SQL查询来完成排序操作. 今 ...
- Activiti的全局事件机制及其监听处理
概述 Activiti在5.15以后的版本后,增加了统一的事件入口,不需要再像以前那样,监听流程的事件时,在流程定义的BPMN文件中为每个节点及流程增加以下的配置,以实现监听事件的做法,这种做法导致我 ...
- 老李推荐:第4章1节《MonkeyRunner源码剖析》ADB协议及服务: ADB协议概览 1
老李推荐:第4章1节<MonkeyRunner源码剖析>ADB协议及服务: ADB协议概览 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试, ...
- ubuntu12.04下编译chrome
1,直接下载压缩包: http://chromium-browser-source.commondatastorage.googleapis.com/chromium_tarball.html 2,安 ...
- 对比字节流和字符流,回答为什么FileReader不能用来拷贝图片
FileReader是输入字符流,拷贝文件没问题,但拷贝图片就有问题了. 假设是在windows下,FileReader用的是GBK码表,一个字符最多用2个字节代表.2个字节就是2的16次方,即有65 ...
- HTML5的localStorage和sessionStorage
HTMl5提供了sessionStorage和localStorage数据存储方法,用于临时或者永久的存储客户端的数据: sessionStorage:用于保存回话数据 localStorage:用于 ...