Asp.net 将会话对象注入WebAPI控制器

Asp.net 将会话对象注入WebAPI控制器,asp.net,spring,spring-mvc,asp.net-web-api,dependency-injection,Asp.net,Spring,Spring Mvc,Asp.net Web Api,Dependency Injection,我有一个遗留的webforms应用程序 我的任务是将它迁移到MCV,但不要把它全部扔掉 我必须让两个应用程序在同一个项目中运行,并逐步迁移功能 此应用程序强烈使用会话,但我不想将我的WebApi耦合到此会话 如何将此登录上下文注入控制器 每个会话可以有一个spring上下文吗?如何做到这一点?真正的RESTful Web Api应该是无状态的,这意味着它不应该跟踪从客户端启动的任何状态,例如会话。您可以选择将MVC与RESTfulWebAPI一起使用,然后在API控制器和MVC控制器之间使用过期

我有一个遗留的webforms应用程序

我的任务是将它迁移到MCV,但不要把它全部扔掉

我必须让两个应用程序在同一个项目中运行,并逐步迁移功能

此应用程序强烈使用会话,但我不想将我的WebApi耦合到此会话

如何将此登录上下文注入控制器


每个会话可以有一个spring上下文吗?如何做到这一点?

真正的RESTful Web Api应该是无状态的,这意味着它不应该跟踪从客户端启动的任何状态,例如会话。您可以选择将MVC与RESTfulWebAPI一起使用,然后在API控制器和MVC控制器之间使用过期令牌。每次调用时都需要将此令牌传递回Web API,并用于验证当前会话的真实性。

是的!这就是我要说的。所以,如果我决定制作一个单页应用程序,这个令牌应该在所有请求中发送,因为cookies不会在ajax请求中发送。有没有更好的方法来保持它的trasnparent,我的意思是,不要每次都传递它?你认为如果我使用mvc过滤器将这个登录信息设置到我的API控制器中,我会回到会话概念吗?可以将令牌存储在Web API的会话内存中,但它会变成有状态的。在REST中,正确的方法是将其作为访问令牌在每个调用中传递,无论是在头中(我的首选项)还是在URI中。例如,该令牌可用于查找存储在内存中的任何其他安全令牌/会话