Включить CORS для ASP.NET веб-api core 2.0
Я создал веб-API с помощью ASP.Net ядро 2.0 в котором я реализовал код для включения CORS как показано ниже:
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddCors(options => { options.AddPolicy("AllowFromAll", builder => builder .WithMethods("GET", "POST") .AllowAnyOrigin() .AllowAnyHeader()); }); ; services.AddMvc(); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseCors("AllowFromAll"); app.UseMvc(); } } }
Когда я проверяю ответ, вызывая его через fiddler, я получаю http 401: несанкционированная ошибка.
Я не уверен, что пропустил какую-то реализацию для включения CORS.
Есть какие-нибудь предложения, пожалуйста?
Что я уже пробовал:
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddCors(options => { options.AddPolicy("AllowFromAll", builder => builder .WithMethods("GET", "POST") .AllowAnyOrigin() .AllowAnyHeader()); }); ; services.AddMvc(); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseCors("AllowFromAll"); app.UseMvc(); } } }
ramsai1973
HTTP/1.1 401 несанкционированный
Кэш-контроля: индивидуальная
Content-Type: text/html; charset=utf-8
Сервер: Microsoft-IIS/10.0
WWW-аутентификация: переговоры
Веб-проверки подлинности: проверка подлинности NTLM
X-Powered-By: ASP.NET
Дата: СБ, 24 февраля 2018 05:42:50 GMT
Содержание-Длина: 5989
Прокси-Поддержка: Аутентификация На Основе Сеанса
<!Элемент DOCTYPE в HTML общественности "-//W3C для//определения DTD XHTML 1.0 строгий//ванной" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&ГТ;
<title>IIS 10.0 подробная ошибка - 401.2 - несанкционированный
<!--
тело{маржа:0;шрифт-размер:.7em;купел-семья:Вердана,Ариал шрифт Helvetica,без засечек;}
код{margin:0;color:#006600;font-size:1.1 em;font-weight:bold;}
.config_source code{font-size:.8em;color:#000000;}
пре{маржа:0;шрифт-размер:1.4 ЭМ;перенос слов:брейк-слово;}
ul,ol{margin:10px 0 10px 5px;}
ул.во-первых,ол.первый{маржи-топ:5 пикселей;}
fieldset{padding:0 15px 10px 15px;word-break:break-all;}
.summary-container fieldset{padding-bottom:5px;margin-top:4px;}
legend.no-expand-all{padding:2px 15px 4px 10px;margin:0 0 0 -12px;}
легенда{color:#333333;;margin:4px 0 8px -12px;_margin-top:0px;
шрифт-вес:жирный;размер шрифта:1эм;}
ответ:ссылка,: посетил{цвет:#007EFF;шрифт-вес:смелые;}
a:hover{text-decoration:none;}
h1{font-size:2.4 em;margin:0;color:#FFF;}
h2{font-size:1.7 em;margin:0;color:#CC0000;}
h3{font-size:1.4 em;margin:10px 0 0 0;color:#CC0000;}
h4{font-size:1.2 em;margin:10px 0 5px 0;
}#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS",Verdana,sans-serif;
цвет:#FFF;цвет фона:#5C87B2;
}#content{margin:0 0 0 2%;position:relative;}
.summary-container,.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}
.content-container p{margin:0 0 10px 0;
}#details-left{width:35%;float:left;margin-right:2%;
}#details-right{width:63%;float:left;overflow:hidden;
}#server_version{width:96%;_height:1px;min-height:1px;margin:0 0 5px 0;padding:11px 2% 8px 2%;color:#FFFFFF;
фон-цвет:#5A7FA5;границы вниз:1px твердых #C1CFDD;границы-топ:1 пиксель твердых #4A6C8E;шрифт-вес:нормальный;
размер шрифта:1em;цвет:#FFF;выравнивание текста:справа;
}#server_version p{margin:5px 0;}
таблица{margin:4px 0 4px 0;width:100%;border:none;}
тд е{вертикального выравнивания:сверху;обивка:0 3 пикселей;текст-согласовать:слева;шрифт-вес:нормальный;границы:нет;}
th{width:30%;text-align:right;padding-right:2%;font-weight:bold;}
thead th{background-color:#ebebeb;width:25%;
}#details-right th{width:20%;}
стол тр.альт тд,таблица тр.АЛТ-й{}
.изюминка-код{цвет:#CC0000;шрифт-вес:жирный;стиль шрифта:курсив;}
.ясно{ясна:как;}
.предпочтительный{обивка:0 5 пикселей 2 пикселя 5 пикселей;шрифт-вес:нормальный;фон:#006633;цвет:#FFF;шрифт-размер:.8em;}
-->
Ошибка http 401.2 - несанкционированный доступ
Вы не имеете права просматривать эту страницу из-за недопустимых заголовков аутентификации.
Наиболее вероятные причины:
В IIS не выбран ни один протокол проверки подлинности (включая анонимный). Включена только интегрированная аутентификация, и был использован клиентский браузер, который не поддерживает интегрированную аутентификацию. Интегрированная аутентификация включена, и запрос был отправлен через прокси-сервер, который изменил заголовки аутентификации до того, как они достигли веб-сервера. Веб-сервер не настроен для анонимного доступа, и требуемый заголовок авторизации не был получен. В "настройка/система.раздел: Управление сайтом"/ "авторизация" может быть явно отрицая доступ пользователей.
Вещи, которые вы можете попробовать:
Проверьте параметры проверки подлинности для ресурса, а затем попробуйте запросить ресурс с помощью этого метода проверки подлинности. Убедитесь, что браузер клиента поддерживает встроенную проверку подлинности. Убедитесь, что запрос не проходит через прокси-сервер при использовании встроенной проверки подлинности. Убедитесь, что пользователю явно не отказано в доступе в разделе конфигурации "configuration/system.webServer/authorization". Создайте правило трассировки, чтобы отслеживать невыполненные запросы для этого кода состояния HTTP. Для получения дополнительной информации
Richard Deeming
"Вы не имеете права просматривать эту страницу из-за недопустимых заголовков аутентификации."
Похоже, это не имеет никакого отношения к вашим заголовкам CORS. Похоже, что ваш сайт настроен на отказ в анонимном доступе, и вы делаете анонимный запрос.
"В IIS не выбран ни один протокол аутентификации (включая анонимный). Включена только интегрированная аутентификация, и был использован клиентский браузер, который не поддерживает интегрированную аутентификацию."
RickZeeland
А когда вы попробуете с выключенным брандмауэром ?