在DotNetNuke中使用HTTPWebRequest进行Active Directory身份验证时发生错误
是否有人在DotNetNuke网站中成功地将Active.Net身份验证与System.Net.HTTPWebRequest配合使用?我环顾四周,发现了几个HTTPWebRequest和Active Directory身份验证的引用,但没有一个引用特别的东西。我尝试过无数次的属性/方法变体,但没有成功。在DotNetNuke中使用HTTPWebRequest进行Active Directory身份验证时发生错误
我工作的开发环境是一个Windows 2003 Server,充当备份PDC并运行IIS 6.0。该网站运行带有Active Directory认证的DotNetNuke 4.9.4(也在DNN 5.1.4中试用过),并且非常适合登录。但是,其中一个模块会执行HTTPWebRequest来处理文件,并且会发生401未授权错误。
最基本的代码我曾尝试:
昏暗webReq作为HttpWebRequest的= DirectCast(WebRequest.Create(SURL),HttpWebRequest的) webReq.Timeout = 30000 昏暗凭证作为新的NetworkCredential(sUserName,spassword开头) 昏暗credentialCache作为新credentialCache() credentialCache.Add(新的URI(SURL), “NTLM”,凭证) webReq.Credentials = credentialCache webReq.KeepAlive =真 webReq.Accept = “/”
我尝试添加PreAuthenticate。
我也曾尝试注册表项修改,包括这一个:
Changes to NTLM authentication for HTTPWebRequest in Version 3.5 SP1
均无功而返。每当我得到可怕的401:
远程服务器返回一个错误:(401)未经授权。 在System.Net.HttpWebRequest.GetResponse()
我也创建了一个简单的aspx页面与诠释他背后的代码如下: 昏暗requestUrlString的String = “http://adtestsite/somepage.aspx” 昏暗webReq作为HttpWebRequest的= DirectCast(WebRequest的。创建(requestUrlString),HttpWebRequest的) 昏暗的NC作为新的NetworkCredential( “用户名”, “密码”, “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
我得到一个 “NO!”每次都有401错误。
我在这一块上撞墙。如果有人有秘密酱的秘诀,请让我知道!
HttpWebRequest连接的服务器的OS平台是什么?
带有SP2的Windows 2003标准版 – user213109 2009-11-18 18:09:16
我明白了。你能得到一个tracelog吗?这里的说明... http://ferozedaud.blogspot.com/2009/08/tracing-with-systemnet.html – feroze 2009-11-19 16:20:35