Я получил сервер с работающим Apache. Теперь я хочу иметь возможность читать содержимое папки там, и для этого эта папка настроена в Apache httpd.conf примерно так:
Alias /folder "E:/Folder"
<Directory "E:/Folder">
AuthName "Public Folder"
AuthType SSPI
SSPIAuth On
SSPIAuthoritative On
SSPIDomain DOMAIN
SSPIOfferBasic On
SSPIOfferSSPI On
SSPIBasicPreferred Off
SSPIOmitDomain On
SSPIUsernameCase lower
require group "DOMAIN\Domain Users"
</Directory>
Теперь, когда я использую браузер, я уже могу получить доступ к этой информации с помощью URL http://ServerName/Folder/
Так что это уже отлично работает. Но сейчас я пытаюсь получить эти данные папки для моего приложения на C #. Я использую DefaultNetworkCredentials, и мой код выглядит примерно так:
public void CheckFolder()
{
WebRequest request = HttpWebRequest.Create(_uri);
request.Credentials = CredentialCache.DefaultNetworkCredentials;
request.BeginGetResponse(new AsyncCallback(HandleGetAvailableUpdates), request);
}
void HandleGetAvailableUpdates(IAsyncResult state)
{
try
{
if (state.IsCompleted)
{
WebRequest req = state.AsyncState as WebRequest;
WebResponse response = req.EndGetResponse(state);
Stream wStream = null;
wStream = response.GetResponseStream();
byte[] data = new byte[response.ContentLength];
etc.
.
.
.
}
catch (WebException ex)
{
Console.WriteLine(ex.ToString());
}
}
}
req.EndGetResponse (состояние) теперь генерирует исключение WebException:
The remote server returned an error: (401) Unauthorized.
Возвращаясь к серверной части. Я смотрю на Apache error.log и там нахожу:
(OS 87)The parameter is incorrect. : authentication failure for "/folder": user unknown, reason: cannot generate context
Эта функция Программы уже хорошо работала около двух месяцев назад. Код C # вообще не изменился, но я не знаю, было ли что-то сделано с сервером или с конфигурацией Apache. Я также попытался передать свои учетные данные (имя пользователя и pw, то же самое, что я использую при доступе через веб-браузер) вручную в C # -коде, а не используя DefaultNetworkCredentials, но безрезультатно. Итак, наконец, мой вопрос будет: я что-то забыл? Есть ли какие-либо другие настройки на сервере, которые необходимо выполнить, чтобы он работал?