有没有人在DotNetNuke网站上成功使用System.Net.HTTPWebRequest和Active Directory身份验证?我环顾四周,发现了几个对HTTPWebRequest和Active Directory身份验证的引用,但似乎都没有特别的含量。我尝试了无数的属性/方法变体,但没有成功。
我正在使用的开发环境是一个Windows 2003 Server,它充当备份PDC并运行IIS 6.0。该网站正在使用Active Directory身份验证运行DotNetNuke 4.9.4(也在DNN 5.1.4中尝试过),并且非常适合登录。但是,其中一个模块执行HTTPWebRequest来处理文件,并且它正在处理401 Unauthorized错误。
我尝试过的最基本的代码:
Dim webReq As HttpWebRequest = DirectCast(WebRequest.Create(sURL),HttpWebRequest) webReq.Timeout = 30000 Dim凭证As New NetworkCredential(sUserName,sPassword) Dim credentialCache As New CredentialCache() credentialCache.Add(New Uri(sURL),“NTLM”,凭证) webReq.Credentials = credentialCache webReq.KeepAlive = True webReq.Accept =“ / ”
我尝试过添加PreAuthenticate。
我还尝试过修改注册表项,包括以下内容:
Changes to NTLM authentication for HTTPWebRequest in Version 3.5 SP1
一切都没有成功。每次我得到可怕的401:
远程服务器返回错误:(401)未经授权。 在System.Net.HttpWebRequest.GetResponse()
我还创建了一个简单的aspx页面,其背后的代码如下: Dim requestUrlString As String =“http://adtestsite/somepage.aspx” Dim webReq As HttpWebRequest = DirectCast(WebRequest.Create(requestUrlString),HttpWebRequest) Dim nc As New NetworkCredential(“UserName”,“Password”,“OurDomainName”)
Dim webResponse As System.Net.HttpWebResponse = DirectCast(webReq.GetResponse, HttpWebResponse)
If webResponse.StatusCode = HttpStatusCode.OK Then
Response.Write("Yes!")
Else
Response.Write("NO!")
End If
我得到“不!”每次都有401错误。
我在这个人的头上撞墙。如果有人有秘方酱的食谱,请告诉我!
答案 0 :(得分:0)
HttpWebRequest连接到的服务器的OS平台是什么?