2009-11-17 49 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

相關問題