web api POST возвращает ошибку 500 с AllowAnonymous Requests - PullRequest
0 голосов
/ 18 ноября 2018

У меня есть веб-сайт DNN 9.2 , настроенный на локальном сервере.Я использую HttpPOST для отправки JSON в web.api.Это работало на прошлой неделе и теперь перестало работать, когда я пытаюсь обновить с Angular 4.1 до 4.3 .

Когда я пытаюсь получить доступ к конечной точке API из моего приложения или звонка почтальонаЯ получаю ошибку 500 и не получаю сообщения.

Вот мой код контроллера:

[HttpPost]
[ActionName("postPost")]
[AllowAnonymous]
public ApiResult UpsertPost([FromBody]Post post)
{
  try
  {
    DO STUFF HERE
  }
  catch (System.Exception ex)
  {
    CATCH ERROR
  }
}

Что забавно, это то, что это работало, и все, что я сделал, это изменил использование нового httpClientот угловой 4.3.Я знаю, что конечная точка API принимает запросы.

То, что я пытался:

  1. Я пытался вывести angular из цикла с помощью вызовов почтальона.Однако я также не могу использовать звонки почтальона, которые я настроил в качестве тестов, и получаю ту же ошибку.
  2. Я попытался изменить атрибут безопасности с [AllowAnonymous] на ** DNNвстроенный атрибут безопасности: [DnnModuleAuthorize (AccessLevel = SecurityAccessLevel.Anonymous)] **, но вместо ошибки 500 появляется следующая ошибка:

В этом запросе отказано в авторизации.

Появляется та же ошибка, что и выше, если я изменяю атрибут безопасности на [DnnModuleAuthorize (AccessLevel = SecurityAccessLevel.View)] *

Я убедился, что действие POST поддерживается в моем файле web.config:

add name = "ExtensionlessUrl-Integrated-4.0" path = "*."verb = "GET, HEAD, POST, DEBUG, PUT, DELETE"Конечные точки API получают удар, потому что если я использую GET вместо POST, я могу достичь всех моих точек останова в коде web.pai.Кроме того, данное «Отказано в авторизации по этому запросу» предоставляется службой API.

ВОПРОС

Может кто-нибудь помочь мне выяснить, почему мои DNN API с сообщениями не принимают запросы

Ответы [ 2 ]

0 голосов
/ 10 декабря 2018

Я знаю, что вы получили ответ самостоятельно, но полезны следующие ссылки:

«Угловой проект для строительных лесов» можно найти здесь: DNN-Angular-6-7-CLI

И модуль DNN, где развернуть ваш проект: SPA DNN9: DNN-9.x-SPA-and-Angular-6-7

ASCX для всех DNN: DNN-7.x-8.x-9.x-and-Angular-6-7

все работает с dnn webapi и безопасностью.

Я использовал эти проекты со своими клиентами.

Маттео

0 голосов
/ 18 ноября 2018

Хорошо, поэтому не удивительно, что это была моя вина.Я перенес процесс авторизации для запросов http на новые перехватчики httpClient.У меня была ошибка в функции перехватчика, которая создавала плохо сформированный запрос.Как только я установил перехватчик, запросы API теперь работают правильно.

Надеюсь, это может кому-то помочь

...