' Create a new webrequest to the mentioned URL.
Dim myWebRequest As WebRequest = WebRequest.Create(url)
' Set 'Preauthenticate' property to true.
myWebRequest.PreAuthenticate = True
Console.WriteLine(ControlChars.Cr + "Please Enter ur credentials for the requested Url")
Console.WriteLine("UserName")
Dim UserName As String = Console.ReadLine()
Console.WriteLine("Password")
Dim Password As String = Console.ReadLine()
' Create a New 'NetworkCredential' object.
Dim networkCredential As New NetworkCredential(UserName, Password)
' Associate the 'NetworkCredential' object with the 'WebRequest' object.
myWebRequest.Credentials = networkCredential
' Assign the response object of 'WebRequest' to a 'WebResponse' variable.
Dim myWebResponse As WebResponse = myWebRequest.GetResponse()
[C#] // Create a new webrequest to the mentioned URL.
WebRequest myWebRequest=WebRequest.Create(url);
// Set 'Preauthenticate' property to true. Credentials will be sent with the request.
myWebRequest.PreAuthenticate=true;
Console.WriteLine("\nPlease Enter ur credentials for the requested Url");
Console.WriteLine("UserName");
string UserName=Console.ReadLine();
Console.WriteLine("Password");
string Password=Console.ReadLine();
// Create a New 'NetworkCredential' object.
NetworkCredential networkCredential=new NetworkCredential(UserName,Password);
// Associate the 'NetworkCredential' object with the 'WebRequest' object.
myWebRequest.Credentials=networkCredential;
// Assign the response object of 'WebRequest' to a 'WebResponse' variable.
WebResponse myWebResponse=myWebRequest.GetResponse()
二、匿名:无客户端身份验证
IIS 5.0 为独立提供了三个选项:低(IIS 进程)、中(池)和高(独立)。IIS 具有匿名 Internet 用户帐号的概念,默认为 IUSR_MACHINE,这是另一个在安装 IIS 时创建的本地帐号(类似于 IWAM_MACHINE)。对于给定的资源,如果启用了匿名选项,IIS 将会检查通过这个帐号是否可以成功的访问请求的资源(HTML 文件、ASP 脚本、GIF 文件等)。如果文件上的 DACL 允许访问匿名 Internet 用户帐号,IIS 将在该帐号的支持下执行客户端的请求,而不会尝试一个更加昂贵的身份验证选项。这意味着 IIS 将模拟这个匿名的 Internet 用户帐号并在模拟时打开文件。另一方面,如果 DACL 拒绝访问这个匿名 Internet 用户,那么 IIS 将迁移到列表中下一个身份验证选项。对于该资源如果没有启用其他选项,则访问将被拒绝。请注意,我已经很小心地用抽象术语来标识这个帐号。这是因为它并不总是 IUSR_MACHINE。当然,IIS 元数据库中每个单独的 Web 资源(Web 站点、虚拟目录、文件系统目录或者文件)都具有以下(可继承的)属性:
AnonymousUserName 这是一个有效的用户帐号名,当匿名 Internet 用户请求特定资源时,IIS 使用这个帐号为他们建立一个登录会话。
AnonymousUserPass 刚刚描述过的帐号的密码。
AnonymousPasswordSync 这是一个我即将描述的具有神奇性质的布尔属性。
默认情况下,元数据库(所有 Web 节点的根)中的 W3SVC 节点设置 AnonymousUserName 为 IUSR_MACHINE,并设置 AnonymousPasswordSync 为 True 。后面的这个属性非常神奇,当设置的时候,通过在 LSA 中调用一个特殊的子身份验证 DLL 可以使 INETINFO.EXE 在没有提供密码的情况下获得一个登录会话,这基本上为您提供了一个登录,而根本不需要检查密码。这是一个很好的特性。但是要注意:它只支持本地帐号。如果这个特性使你有所警觉的话,想想 INETINFO.EXE 是运行在 System 登录会话中的,因此是 TCB 的一部分。这是 TCB 的成员在本地机上随意行事的例子。
根据我自己使用 IIS 5.0 的经验,如果使用密码同步选项,那么为匿名用户产生的登录会话将是一个没有网络凭据的网络登录会话,由于 IIS 在没有提供密码的情况下获得登录会话,这将很有意义。另一方面,如果没有使用这个特性,并且明确的指定了一个密码,登录会话将是一个有网络凭据的交互式登录会话。当然,如果您使用一个本地帐号,这些网络凭据不会有太大帮助,除非您在另外一台机器上创建了一个匹配的用户名和密码。
另外还应注意,当两个或者多个资源共享同一匿名帐号设置(典型情况)时,IIS 尽量缓存一个单独的登录会话,并为所有这些资源模拟该会话,甚至跨越独立的应用程序边界。