2015-11-10 43 views
0

我有一个带有Forms身份验证的ASP.NET应用程序,现在正在实现ApiControllers。asp.net重定向到ApiController POST方法

在我的登录页面上,我将用户转发给他签名后他想要的电话。

FormsAuthentication.RedirectFromLoginPage

,它工作正常,如果它是一个“GET”方法,但如果它是一个“POST”的方法,然后我得到这个错误。

“请求的资源不支持http方法'GET'。”

所有方法都可以正常工作,但第一次调用只能是“GET”方法。

是不是可以“从登录页面重定向”到“POST”方法?

回答

0

您不能发出重定向到POST,否。重定向总是一个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”,但我所有的API调用的语法如下subdomain.domain.com/ API/somename/...

It works ...