在两个不同的Web应用程序之间共享单个会话

3

我一直在使用两个不同的Web应用程序,一个是使用Asp.net开发的,另一个是我正在开发的AngularJS(它是独立的)。

现在我的问题是,是否可以访问ASP.net应用程序的会话到AngularJS应用程序中?

如果可以这样做,请建议我如何实现?

谢谢,将感激您的帮助。


1
我也遇到了同样的问题,已经寻找解决方案两天了。 - Chiragkumar Thakar
3
你可能看过这篇文章,http://chsakell.com/2015/03/07/angularjs-feat-web-api-enable-session-state/,或许其中的概念可以用于你的需求中? - Louis Lewis
1
@LouisLewis 谢谢,让我看看那个。 - Chiragkumar Thakar
2
使用JSONP(绕过CORS问题)怎么样?您可以创建HTTP处理程序(或Web服务)来处理jsonp请求 - 在您的asp.net应用程序内部,然后只需使用$http.jsonpAngularJS调用它。根据传递的关键字参数,您将返回session值。 - Ivan Sivak
1
@IvanSivak 我认为那将是一笔很好的交易。 - Chiragkumar Thakar
显示剩余2条评论
1个回答

5

由于会话保存在您的IIS应用程序池中,因此无法访问会话。

我建议两种解决方法:

  1. 添加REST端点以获取会话KEY并检索VALUE,然后使用此服务与您的angular.js代码一起获取会话值。

  2. 重构您的asp.net代码,改为使用cookie而不是会话,然后就可以访问这些数据。


我不确定,但我认为ASP.NET会在每次启动时更改cookie名称。 - Sebastian Xawery Wiśniowiecki
我同意选项1。从客户端代码调用服务器端代码是唯一实际的选择。拥有一个暴露方法的端点(MVC控制器或WebApi控制器),该方法将从会话中返回值。 - Jason Evans
@stav mizrahi,你的回答很有帮助,但并没有完全解决我的问题。已点赞。 - user5001896

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接