ASP.NET WebAPI如何在用户通过身份验证时保留状态变量

时间:2014-11-08 19:04:17

标签: asp.net-web-api asp.net-web-api2

我有一个ASP.NET WebAPI项目,可以将json数据提供给我的移动应用程序。

在我的Api的每个移动请求中,我使用用户sessionid发送http标头,以便我可以在服务器端验证该请求。

因此,如果我的移动应用程序请求10个json数据目录,则每个请求都必须验证sessionid是否有效才能返回数据。

  

我的问题是,是否可以将状态保存在服务器上(如传统的http会话),这样每次都可以保存到我的数据库的往返行程以验证用户sessionid。

我以前在<authentication mode="None">文件中有web.config,并且在每个验证用户sessionId的控制器方法上都有一个过滤器。我的过滤器里面曾经有过:

  ....
 if (Thread.CurrentPrincipal.Identity.IsAuthenticated) return;
  ....

这就是诀窍,但现在我被迫在我的WebAPI项目中添加一个Razor网站,所以我不得不将我的认证模式改为:

<authentication mode="Forms">
      <forms loginUrl="~/Account/LogOn" defaultUrl="~/Home/Index" name=".ASPXFORMSAUTH" protection="All" timeout="30" slidingExpiration="true" />
    </authentication>

0 个答案:

没有答案