Angularjs 角度Js+;Asp.net Web api会话管理

Angularjs 角度Js+;Asp.net Web api会话管理,angularjs,asp.net-web-api,single-page-application,javascript-framework,Angularjs,Asp.net Web Api,Single Page Application,Javascript Framework,我对angular和web api都是新手,我以前研究过asp.net web表单和java jsp,我的问题是,由于angular是纯js框架,web api用于Http服务,如果我们使用这两种技术构建web应用程序,如何处理会话管理,我们可以在web api控制器中创建会话吗?如果可以,既然webapi(REST)是无状态的,它是否违反了REST无状态的原则,请澄清 感谢Angular和WebAPI不会改变在web应用程序中跟踪会话的方式。通常,这是通过随每个请求一起发送的cookie来完成

我对angular和web api都是新手,我以前研究过asp.net web表单和java jsp,我的问题是,由于angular是纯js框架,web api用于Http服务,如果我们使用这两种技术构建web应用程序,如何处理会话管理,我们可以在web api控制器中创建会话吗?如果可以,既然webapi(REST)是无状态的,它是否违反了REST无状态的原则,请澄清


感谢

Angular和WebAPI不会改变在web应用程序中跟踪会话的方式。通常,这是通过随每个请求一起发送的cookie来完成的。由于cookie遵循域,角度请求将始终发送到cookie中(就像以前一样)

要回答您的每个问题,请执行以下操作:

我们可以在web api控制器中创建会话吗

是的,我们可以通过
HttpContext.Current.session
访问会话

它是否违反了静止无国籍原则


REST(代表性状态转移)没有无状态原则。HTTP是一种无状态协议。REST说,对服务器的调用(使用HTTP动词等)应该会使应用程序的状态进步。

我还没有名声对他做出评论,但David Tyron似乎误解了这种情况下的“无状态”一词。显然,API和使用它的UI都必须维护和处理可以正确标记为状态的数据,但是在RESTful API的上下文中,“无状态”通常是指API不跟踪客户机的状态

这背后的思想是,对API的每个请求都必须包含执行所需操作所需的所有UI信息。换句话说,每个调用都必须独立地进行

会话绝对违反了这一原则,尽管它可能是最常用的防止某些东西100%保持安静的方法

(另一方面,cookie仍然被视为无状态的,因为客户端负责存储该数据。)