401在DotNetNuke中使用HTTPWebRequest和Active Directory身份验证时出错

时间:2009-11-17 18:16:46

标签: active-directory httpwebrequest dotnetnuke

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

我在这个人的头上撞墙。如果有人有秘方酱的食谱,请告诉我!

1 个答案:

答案 0 :(得分:0)

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