2015-11-10 3 views
0

У меня есть приложение ASP.NET с проверкой подлинности с помощью форм и в настоящее время реализуется ApiControllers.asp.net перенаправление на метод POST ApiController

На моей странице входа я направил пользователя на звонок, который захотел после моего подписания.

FormsAuthentication.RedirectFromLoginPage

И это работает прекрасно, если это «GET» метод, но если это метод «POST», то я получаю эту ошибку.

«Запрошенный ресурс не поддерживает метод http« GET ».»

Все методы работают нормально, НО первый вызов должен быть просто методом «GET».

Невозможно ли «Перенаправить со страницы входа» в метод «POST»?

ответ

0

Вы не можете отправить перенаправление на POST, no. Переадресация - это всегда GET. Это связано с тем, что перенаправление - это не что иное, как сервер, указывающий браузеру, к какому адресу обращаться.

По существу у вас есть два варианта:

  1. поддерживают метод GET в целевом действии; или
  2. Показать страницу с формой, которая использует JavaScript для автоматической отправки POST к целевому действию.

Первый вариант кажется гораздо более разумным и менее подверженным ошибкам браузера.

+0

Спасибо за ответ. 1. \t Я поддерживаю методы GET и POST, но если я перенаправляю метод GET, я не могу получить опубликованный объект JSON. 2. \t Звонок из iPad-приложения, поэтому нет страницы или JavaScript. Таким образом, возможно, единственным решением является то, что пользователь ДОЛЖЕН иметь сеанс на сервере перед первым вызовом POST ..... –

0

Я нашел решение.

Я добавил это в мой файл web.config

<location path="api"> 
    <system.web> 
     <authorization> 
     <allow users="*"></allow> 
     </authorization> 
    </system.web> 
    </location> 

Хотя у меня нет какой-либо папка с именем «апи», но все мои API вызовы имеют следующий синтаксис subdomain.domain.com/ API/somename/...

Это работает ...

Смежные вопросы