应用程序向IIS传送身份验证

一、       匿名访问........................................................................................................................ 1

1        客户端发送一个匿名的http请求............................................................................ 2

2        IIS直接返回请求的页面内容................................................................................... 2

二、       Windows集成验证........................................................................................................ 2

1        客户端和服务端机器都在域,客户端以域帐户登录,以服务器名访问...................... 3

1.1.       第一次HttpWebRequest先以匿名发送http请求......................................... 3

1.2.       服务端返回无授权回应..................................................................................... 3

1.3.       再次请求,选择Kerberos验证,附带上此用户的验证票................................. 3

1.4.       服务端验证通过,返回页面.............................................................................. 4

2        客户端和服务端机器都在域,客户端以域帐户登录,以服务器名访问以外的所有情况 5

2.1.       第一次HttpWebRequest先以匿名发送http请求......................................... 5

2.2.       服务端返回无授权回应..................................................................................... 5

2.3.       HttpWebRequest选择NTLM验证,请求质询码............................................ 5

2.4.       服务器返回质询码............................................................................................ 5

2.5.       HttpWebRequest发送登录本机的账户加密后的质询码.................................. 5

2.6.       服务器通过验证,返回页面.............................................................................. 6

3        客户端传送定制用户凭据到服务端........................................................................... 6

三、       基本身份验证................................................................................................................. 6

1.1.       第一次HttpWebRequest先以匿名发送http请求......................................... 7

1.2.       服务端返回无授权回应..................................................................................... 7

1.3.       HttpWebRequest发送base64格式的用户名和密码..................................... 7

1.4.       服务器通过验证,返回页面.............................................................................. 7

四、       一个应用程序访问web services的例子........................................................................ 8

1.1.       Web services端代码...................................................................................... 8

1.2.       Soap调用web services的格式..................................................................... 8

1.3.       客户端应用调用web services代码................................................................. 9

 

 

前面那篇文章《IIS的各种身份验证详细测试》讨论的是客户端为IE访问IIS的各种身份验证的情况,这篇文章讨论一般应用程序如何应对IIS的各种身份验证,把身份凭据传送到IIS服务端。

无论是访问一般的网页,还是访问web services,都是通过http协议来完成的,相应的dotnet类库中提供了HttpWebRequest类来实现http的各种访问控制。

 

一、  匿名访问

服务端IIS设置为允许匿名访问,客户端使用HttpWebRequest发送一个get请求,请求一个页面。

//根据需要访问的URL新建HttpWebRequest对象

HttpWebRequest myHttpWebRequest = (HttpWebRequest)HttpWebRequest.Create("http://192.168.100.82/iisstart.htm");

myHttpWebRequest.Method = "GET";

 

//发送http请求,接收回应到HttpWebResponse对象

HttpWebResponse myWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();

 

//获得http回应的内容部分,是个Stream类型的对象

Stream newStream = myWebResponse.GetResponseStream();

byte[] byteResponse = new byte[myWebResponse.ContentLength];

newStream.Read(byteResponse, 0, (int)myWebResponse.ContentLength);

 

//最后把http回应部分内容转成string

string strContent = Encoding.UTF8.GetString(byteResponse);

myWebResponse.Close();

 

抓数据包看这个http的请求和回应过程就是这样的:

1、 客户端发送一个匿名的http请求

GET /iisstart.htm HTTP/1.1

Host: 192.168.100.82

Connection: Keep-Alive

2、 IIS直接返回请求的页面内容

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值