Кто-нибудь успешно использовал System.Net.HTTPWebRequest с аутентификацией Active Directory на веб-сайте DotNetNuke? Я осмотрелся и нашел несколько ссылок на HTTPWebRequest и аутентификацию Active Directory, но ни одна из них, похоже, не имеет особого соуса. Я попробовал бесчисленные варианты атрибутов / методов, но безуспешно.
Средой разработки, в которой я работаю, является Windows 2003 Server, который действует как резервный PDC и работает под управлением IIS 6.0. Веб-сайт работает под управлением DotNetNuke 4.9.4 с аутентификацией Active Directory (также пробовал в DNN 5.1.4) и отлично работает для входа в систему. Однако один из модулей выполняет HTTPWebRequest для обработки файлов, и он завершается с ошибкой 401 Unauthorized.
Самый базовый код, который я пробовал:
Dim webReq As HttpWebRequest = DirectCast (WebRequest.Create (sURL), HttpWebRequest)
webReq.Timeout = 30000
Dim credential As New NetworkCredential (sUserName, sPassword)
Dim credentialCache как новый CredentialCache ()
credentialCache.Add (Новый Uri (sURL), "NTLM", учетные данные)
webReq.Credentials = credentialCache
webReq.KeepAlive = True
webReq.Accept = " / "
Я попытался добавить PreAuthenticate.
Я также пытался модифицировать раздел реестра, включая этот:
Изменения в аутентификации NTLM для HTTPWebRequest в версии 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 («Имя пользователя», «Пароль», «Имя нашего домена»)
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.
Я бью головой об стену на этом. Если у кого-нибудь есть рецепт секретного соуса, ПОЖАЛУЙСТА, дайте мне знать!