#asp.net-core-3.1 #.net-core-3.1
#asp.net-core-3.1 #.net-core-3.1
Вопрос:
Используя Visual Studio 2019, я создал API .NET Core и сказал ему использовать проверку подлинности Windows. Затем я отредактировал файл WeatherForecastController.cs и добавил простой почтовый маршрут:
[HttpPost]
public ActionResult Foo()
{
return NoContent();
}
Если я затем запускаю приложение локально, через VS, и пытаюсь опубликовать его, передавая учетные данные NTLM, оно по-прежнему выдает запрещенную (403) ошибку. Я видел несколько возможных решений этой проблемы в Google, но, похоже, ничего не работает.
В моем Startup.cs у меня есть это
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment()) {
app.UseDeveloperExceptionPage();
}
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.UseEndpoints(endpoints => { endpoints.MapControllers(); });
}
и в конфигурационных службах, которые я добавил
services.AddAuthentication(IISDefaults.AuthenticationScheme);
Комментарии:
1. Украшен ли ваш контроллер атрибутом [Authorize]?
2. @mac да, это есть в шаблоне по умолчанию.
3. Как выглядит ваш startup.cs?
4. Это просто значение по умолчанию, которое создает Visual Studio. Я ничего не редактировал, кроме добавления HttpPost. Он вызывает UseAuthorization в методе Configure, если это то, что вы ищете.
5. Ознакомьтесь со схемами аутентификации .net core (эта схема конкретно связана с аутентификацией Windows) здесь: docs.microsoft.com/en-us/aspnet/core/security/authentication /. … Попробуйте добавить службы. Добавление аутентификации (IISDefaults. Схема аутентификации);. Имейте в виду, что порядок, в котором вы добавляете промежуточное программное обеспечение в Configure, важен: docs.microsoft.com/en-us/aspnet/core/fundamentals/middleware /…
Ответ №1:
Ну, это не имело никакого отношения к аутентификации. Почтальон возвращал 403, несмотря ни на что. Я, наконец, опустился до выполнения этого вручную с помощью curl и обнаружил, что сервер выдает исключение в совершенно не связанной области. Исправление этого исправило проблему.
Комментарии:
1. В чем была проблема? Я вижу то же самое
2. @Alex, как я уже сказал, это никак не связано. Я даже не помню, что. Просто попробуйте использовать curl напрямую, и вы можете увидеть лучшую ошибку. Я часто нахожу, что Почтальон делает глупости, которые скрывают истинную проблему. Я почти перестал его использовать.