Использование MVC Asp.Net
Ниже код работает с фактическим именем пользователя и паролем. Но я не хочу его использовать. :
WebClient client1 = new WebClient();
client1.Credentials = new NetworkCredential("actualUserName", "actualPassword");
string code1 = client1.DownloadString(@"http://Domainname/GetValue");
Пробовал javascript подход:
$.ajax({
type: 'POST',
url: Url,
processData: false,
contentType: 'application/json; charset=utf-8',
dataType: 'jsonp',
crossDomain: true,
jsonpCallback: 'CallBackMethod',
success: function (json) {
console.log(json);
},
error: function (xhr, textStatus, errorThrown) {
console.log(errorThrown);
}
});
Но получив следующую ошибку:
Multiple Access-Control-Allow-Origin headers are not allowed for CORS response.
XMLHttpRequest: Network Error 0x80070005, Access is denied.
Пытался добавить заголовок в Global.asax в Application_BeginRequest и аналогичные записи в webconfig:
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");
if (HttpContext.Current.Request.HttpMethod == "OPTIONS")
{
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE");
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Accept");
HttpContext.Current.Response.AddHeader("Access-Control-Max-Age", "1728000");
HttpContext.Current.Response.End();
}
Все вышеперечисленное было опробовано, и оно не работает с машиной Win7. Но работает с машины Win10 !! Также попытался развернуть на сервере и проверить, но появляются такие же ошибки.
Ключ к вашей проблеме прав в сообщении об ошибке:
Заголовки заголовков с несколькими правами доступа-Разрешения-заголовки недопустимы
Сервер отвечает дублирующими заголовками. Это приводит к сбою некоторых браузеров. Вы упомянули, что вы реализовали CORS в двух местах. Это хорошее место для начала. Удалите одну реализацию и посмотрите, что произойдет.
Существуют рамки, которые также внедряют CORS. Суть в том, что вам нужен только один, и тот, который работает лучше всего. Независимо от того, какую реализацию вы выполняете, она также должна обрабатывать стандартные запросы и предполетные запросы (ОПЦИИ).
Ниже исправлена проблема:
IIS → Аутентификация → Аутентификация Windows → Поставщики → Удалить переговоры