Я пытаюсь реализовать настраиваемую базовую аутентификацию , аналогичную этой , и одна вещь, которая меня смущает, - это концепция ] область . Например, есть момент, когда мой модуль вставляет некоторую магическую строку в ответ:
void ReplyWithAuthHeader()
{
HttpContext currentContext = HttpContext.Current;
context.Response.StatusCode = 401;
context.Response.AddHeader( "WWW-Authenticate",
String.Format("Basic realm=\"{0}\"", "myname.mycompany.com"));
}
Сайту назначается сертификат SSL, созданный с помощью утилиты makecert, и он «выдается» на «myname.mycompany.com». Вызывающий создает запрос:
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create( serverUrl );
CredentialCache cache = new CredentialCache();
cache.Add( new Uri( serverUrl ), "Basic", new NetworkCredential( "UserName", "password" ) );
request.Credentials = cache;
, где serverUrl
начинается с https: //
, и когда запрос обрабатывается сервером, сервер отправляет ответ «WWW-Authenticate», тогда на стороне клиента выдается исключение: «Невозможно записать данные в транспортное соединение: установленное соединение было прервано программным обеспечением на вашем хост-компьютере». текст.
Очевидно, что что-то не так на уровне согласования SSL, и я не могу понять, что именно. Я предполагаю, что это может быть что-то, связанное с областью.
Мой вопрос - что такое область и как она связана с именем стороны, которой был выдан сертификат SSL при подключении сделано через SSL?