【问题标题】:Angular Js+Asp.net Web api session managementAngular Js+Asp.net Web api 会话管理
【发布时间】:2015-04-14 09:13:25
【问题描述】:

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

谢谢

【问题讨论】:

    标签: angularjs asp.net-web-api single-page-application javascript-framework


    【解决方案1】:

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

    这背后的想法是,对 API 的每个请求都必须包含所有必要的 UI 信息以执行所需的操作。换句话说,每个调用都必须独立发生并且彼此独立。

    会话绝对违反了这一原则,尽管它可能是最常用的阻止某些东西 100% RESTful 的东西。

    (在相关说明中,Cookie 仍然算作无状态,因为客户端是负责存储该数据的人。)

    【讨论】:

      【解决方案2】:

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

      回答您的每个问题:

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

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

      是否违反了 REST 无状态原则?

      REST(Representational State Transfer)没有无状态原则。 HTTP 是一种无状态协议。 REST 表示对服务器的调用(使用 HTTP 动词等)应该处理应用程序的状态。

      【讨论】:

        猜你喜欢
        • 2015-02-12
        • 1970-01-01
        • 2018-03-03
        • 2021-11-29
        • 2016-02-21
        • 1970-01-01
        • 1970-01-01
        • 2014-11-04
        • 1970-01-01
        相关资源
        最近更新 更多