Я разработал Windows Сервисы, которые предоставляют методы RESTful с использованием Grapevine. Мне нужен доступ к хранилищу сертификатов текущего пользователя, и я полагаю, что для этого мне нужно выдать себя за такого пользователя. По этой причине я бы установил аутентификацию для сервиса (и методов RESTful) как NTLM. Я попытался использовать метод, предложенный Скоттом, с помощью server.Advanced, чтобы получить HttpListener и установить метод аутентификации:
static void MyCorsPolicy(IHttpContext context)
{
context.Response.AddHeader("Access-Control-Allow-Origin", "*");
context.Response.AddHeader("Vary", "Origin");
context.Response.AddHeader("Access-Control-Allow-Headers", "*");
}
var listener = server.Advanced;
listener.AuthenticationSchemes = AuthenticationSchemes.Ntlm;
listener.UnsafeConnectionNtlmAuthentication = true;
listener.IgnoreWriteExceptions = true;
server.Host = IPAddress.Any.ToString();
server.Port = PortFinder.FindNextLocalOpenPort(1957);
server.Router.BeforeRouting += MyCorsPolicy;
server.LogToConsole().Start();
После этого в методы я планирую вставить инструкции, чтобы получить аутентифицированного пользователя и продолжить. Такие методы должны использоваться с помощью вызовов jQuery Ajax из браузера и javascript.
Когда я попытался это сделать, я не смог получить доступ к серверу из браузера, потому что я получил ошибку, которая «Нет заголовка Access-Control-Allow-Origin».
Есть предложения?