Я столкнулся с проблемой при создании веб-клиента, который использует веб-сервис RESTful с использованием встроенной аутентификации Windows.
Когда я запускаю клиент локально (как я), он работает нормально, и яувидеть мой идентификатор пользователя в журналах IIS.Но когда я запускаю его удаленно, учетные данные не передаются (то есть я не вижу свой идентификатор пользователя в журналах IIS), и я получаю сообщение об ошибке
"Удаленный сервер возвратил ошибку:(401) Несанкционировано. "
И локальный, и опубликованный клиент вызывают одну и ту же службу.Также обратите внимание, что журналы IIS показывают две записи (одну без имени пользователя и одну с именем пользователя), когда я запускаю ее локально.Когда я вхожу из опубликованного местоположения, все еще есть две записи, но ни одна не показывает имя пользователя.
Ниже приведен код, который я использую для вызова:
var request = (HttpWebRequest) WebRequest.Create(ConfigurationManager.AppSettings["positionServicePath"] + "?positionNumberSearch=" + searchString);
request.Method = "GET";
request.ContentType = "application/json";
request.UseDefaultCredentials = true;
request.PreAuthenticate = false;
CredentialCache cc = new CredentialCache();
cc.Add(
new Uri(ConfigurationManager.AppSettings["positionServicePath"]),
"Negotiate",
CredentialCache.DefaultNetworkCredentials);
request.Credentials = cc;
// Get the Response
using (var response = request.GetResponse()){
var reader = new StreamReader(response.GetResponseStream());
// Convert the response to objects from Json
var resultList = JsonConvert.DeserializeObject<IEnumerable<PositionModel>>(reader.ReadToEnd());
// Return an empty list, if no data was retrieved
return resultList != null ? resultList.ToList() : new List<PositionModel>();
}
Любая помощьбудет принята с благодарностью.