我正在尝试使用 .net 中的 WebRequest 类向网页发出请求。我尝试读取的url需要Windows身份验证,因此我收到了未经授权的异常。如何将Windows凭据传递给此请求,以使其得到认证。
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create( "http://myapp/home.aspx" );
request.Method = "GET";
request.UseDefaultCredentials = false;
request.PreAuthenticate = true;
request.Credentials = new NetworkCredential( "username", "password", "domain" );
HttpWebResponse response = (HttpWebResponse)request.GetResponse(); // Raises Unauthorized Exception
this.Response.Write( response.StatusCode );
上面的代码返回以下错误。
System.Net.WebException: The remote server returned an error: (401) Unauthorized.
在检查异常详细信息时,我注意到一件事情,即我尝试访问的 URL 正在重定向到另一个 URL,要求我提供 NT 登录凭据。我相信这些凭据也应该转发到这个 URL,但显然这并没有发生。