技术开发 频道

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



前面那篇文章《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直接返回请求的页面内容
HTTP/1.1 200 OK

Content-Length: 200

Content-Type: text/html

Last-Modified: Fri, 23 Nov 2007 07:00:18 GMT

Accept-Ranges: bytes

ETag: "6084ba819e2dc81:32a"

Server: Microsoft-IIS/6.0

MicrosoftOfficeWebServer: 5.0_Pub

X-Powered-By: ASP.NET

Date: Fri, 23 Nov 2007 07:00:44 GMT

 

<html>

 

<head>

<meta HTTP-EQUIV="Content-Type" Content="text/html; charset=gb2312">

<title ID=titletext>......</title>

</head>

 

<body bgcolor=white>

.This is a sample page!

</body>

</html>

0
相关文章