Я пытаюсь внедрить пользовательскую базовую аутентификацию , похожую на эту , и одна вещь, которая меня смущает, это концепция realm . Например, есть момент, когда мой модуль вставляет некоторую магическую строку в ответ:
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 что-то не так, и я не могу представить, что это такое. Я предполагаю, что это может быть что-то, связанное с царством.
У меня вопрос - что такое realm и как оно связано с именем стороны, которой был выдан сертификат SSL, когда соединение установлено по SSL?