我有一个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>