asp.net重定向到ApiController POST方法

时间:2015-11-10 13:14:38

标签: asp.net forms-authentication asp.net-apicontroller

我有一个带有Forms身份验证的ASP.NET应用程序,现在正在实现ApiControllers。

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

FormsAuthentication.RedirectFromLoginPage

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

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

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

是否无法“从登录页面重定向”到“POST”方法?

2 个答案:

答案 0 :(得分:0)

您无法向POST发出重定向,不能。重定向始终是GET。这是因为重定向只不过是服务器告诉浏览器要去哪个地址。

基本上你有两个选择:

  1. 在目标操作中支持GET方法;或
  2. 显示一个页面,其中包含使用JavaScript自动将POST提交到目标操作的表单。
  3. 第一个选项似乎更合理,不太容易出现浏览器错误。

答案 1 :(得分:0)

我找到了解决方案。

我将此添加到我的web.config文件

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

虽然我没有任何名为&#34; api&#34;的文件夹,但我的所有API调用都具有以下语法subdomain.domain.com/api/somename / ... < / p>

它有效......