2016-07-15 60 views
0

网站使用Angularjs作为前端调用API(IIS中的Asp.net)。
每个请求都通过Global.asax Start_Session生成新的会话ID。
它应该使用同一个会话给同一个用户。每个Angularjs http请求集的ASP会话更改

我试图用这个URL发送GET请求:
$http({method: 'GET', url: 'http://localhost:59893/initSite.aspx'})
我读这qusetion但答案并不在我的情况有所帮助:
ASP.NET: Session.SessionID changes between requests

+0

您可以检查请求头,看它是否有会话ID的Cookie。像Cookie一样:ASP.NET_SessionId = yza5qg41rdeblnadv1s5tb4m – mattfei

回答

0

我不确定ASP,但使用PHP我发现了API请求的类似问题。您不能依赖ASP/PHP来记录来自不同客户端的每个请求上的会话标识,您需要将每个请求的会话标识发布到API,其中根据数据库中已登录的用户列表检查会话标识。

这将是使用远程API处理登录用户的正确方法。 选中此相似的回答:Auto Logout when user leaves the application without doing logout action

+0

这是一个解决方案,但不是问题的真正解决,因为asp.net应该为每个特定用户创建会话ID。 –

0

如果你希望你的会话ID是相同的用于特定会话......店里的东西在会话变量(任何虚拟)每个请求......然后它会给出相同的会话ID ..

它会发生如果你没有任何东西存储在你的会话变量..你会一直得到一个新的会话ID为同一会话本身。

做类似下面

Session["any_name"]="anything"; 
+0

我试图在Global.asax中创建会话 - Start_Session,但该网站仍然为每个请求生成不同的sessionID –