{StatusCode:500,ReasonPhrase:'内部服务器错误'在sso Api呼叫形式认证

时间:2017-04-11 14:02:42

标签: c# api asp.net-mvc-5

这里我在web.config中使用表单身份验证:

   <forms loginUrl="~/LogOn" timeout="2880" defaultUrl="~/Home/Index" name=".ASPXAUTH" protection="All" path="/" enableCrossAppRedirects="true" domain=".xyz.com" />

</authentication>
<authorization>
  <deny users="?" />
</authorization>

问题在于:(这里我称之为api url ..但它不会调用正确的方式..而不是它将重定向到其他网址,如下所示)

var response = client.GetAsync(apiUrl).Result;

这是apiUrl:

http://localhost:1849/Api/Ticket?UserId=10&start=0&length=10&searchstr=&orders=0&orderDir=asc

但它不会调用此api而是调用

http://localhost:1849/LogOn?ReturnUrl=%2fApi%2fTicket%3fUserId%3d10%26start%3d0%26length%3d10%26searchstr%3d%26orders%3d0%26orderDir%3dasc&UserId=10&start=0&length=10&searchstr=&orders=0&orderDir=asc

那我如何调用上面的api ???

1 个答案:

答案 0 :(得分:0)

你对整个网站上的匿名用户有所否定。您需要先进行身份验证。

您可以使用web.config中的位置标记来允许匿名访问您的登录页面,以便您可以对其进行身份验证,然后它将允许访问您的API。

由于您使用的是API,因此可能需要使用与登录页面不同的身份验证方法。