2009-11-17 60 views
1

是否有人在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错误。

我在这一块上撞墙。如果有人有秘密酱的秘诀,请让我知道!

回答

0

HttpWebRequest连接的服务器的OS平台是什么?

+0

带有SP2的Windows 2003标准版 – user213109 2009-11-18 18:09:16

+0

我明白了。你能得到一个tracelog吗?这里的说明... http://ferozedaud.blogspot.com/2009/08/tracing-with-systemnet.html – feroze 2009-11-19 16:20:35

相关问题