0 0

web跨域访问,session丢失的问题25

具体情况如下:
现有项目A和项目B, 项目A中有项目B的一个链接,点击此链接传递过去用户名和密码登陆到B项目中去,此时B项目作为A项目的一个页面出现,第一次点击链接时操作没有问题,当返回来点击A项目链接时提示掉线。
以下为项目部署说明:
项目A用到了集群,apache+tomcat 没有采用session复制,其中A项目也是通过统一门户点击链接进入,并且A项目链接B项目时用到了frameset框架。门户网站也是通过apache转发过来。
现在问题是进入A项目后,如果不点击B项目链接,没有任何问题,只要点击了B项目链接,回过来点A项目的其他菜单即提示掉线(即session为空)
开始的时候点击B项目链接的时候也掉线,后来在B项目加了一个头 P3P什么的解决了。
此问题我想了两天不知何因,求解。

问题补充:问题原因很简单,因为在同一域名下,用的又都是tomcat,而tomcat默认在cookie里放得session的标识是jsessionid,所以点击不同项目的时候jessionid会覆盖上个jsessionid,这样再点击回来的时候会造成jsessionid被覆盖,tomcat根据jessionid找不到session,也就会掉线。有以下几种解决方式:1.改变项目的的cookie path,如果是域名的话,可以将几个项目的域名设为不同。2.可以采用其他的web容器,如jetty或者weblogic,这些容器都可以设置session的标识jsessionid,可以设置成不同的标识这样也不会相互覆盖,也就不会出现掉线的情况。
2011年9月03日 22:33

8个答案 按时间排序 按投票排序

0 0

2011年9月18日 19:20
0 0

跨域必须做SSO(单点登录).. 本地cookies 确实可用
具体需自己去请教了 网上问是问不清的 找个项目的人问问就容易理解多了

2011年9月13日 17:41
0 0

要做个单点登录的功能

2011年9月13日 17:29
0 0

可以使用httpclient访问项目B

2011年9月11日 12:21
0 0

两个项目用的应该是同一个帐号。A项目中进入B项目,把当前用户登录信息如用户名、加密的密码提交至B项目中,此时B项目需保存A项目提交的用户信息,当从B项目返回或你点击的什么按钮等返回时,再次将当前用户信息提交至A系统。可以考虑将当前登录的用户信息提取出来,做一个特殊的处理功能。A/B系统都可以使用。而不至于掉线。

2011年9月05日 14:49
0 0

sso 或 iframe

2011年9月05日 09:57
0 0

我觉的用cookies 保存本地 每个系统都都在本地读取

2011年9月04日 14:35
0 0

给你一个讨论参考
http://www.iteye.com/topic/264079

2011年9月04日 09:53

相关推荐

    跨域共享session (实现http跳转https 共享session)

    1. **防止Session Hijacking**:使用HttpOnly Cookie可以防止JavaScript脚本访问session ID,降低session劫持的风险。 2. **防止Session Fixation**:在用户成功登录后,重新生成session ID,避免攻击者利用预先...

    iframe跨域与session失效问题的解决办法

    //解决IE7\8跨域访问问题 response.setHeader("P3P","CP=\"IDC DSP COR ADM DEV TAI PSA PSD IVAI IVI CONI HIS OUR DEL IND INT\""); %> ``` 这段代码的作用是在响应头中添加一个P3P声明,告诉IE浏览器这个网站...

    关于session丢失问题

    8. **跨域问题**:如果Web应用涉及到跨域访问,Session不会在不同的域名之间共享。解决方法包括使用JSON Web Tokens(JWT)或者将所有资源部署在同一域名下。 9. **用户手动清理Cookie**:用户主动清理浏览器Cookie...

    Nginx session丢失问题处理解决方法

    在使用Nginx作为反向代理服务器时,有时会遇到session丢失的问题,这通常是由于代理和后端服务器之间交互配置不当引起的。下面是处理和解决Nginx session丢失问题的一些知识点和方法: 1. 了解Session机制:在Web...

    关于Iframe如何跨域访问Cookie和Session的解决方法

    在Web开发中,Iframe(内联框架)常用于嵌入其他网页内容,但涉及到跨域访问时,尤其是在处理Cookie和Session时,会遇到一些挑战。本文主要探讨如何解决Iframe跨域访问Cookie和Session的问题。 首先,理解跨域访问...

    解决前后端分离 vue+springboot 跨域 session+cookie失效问题

    因此,需要指定具体的源地址,确保仅允许特定的前端应用进行跨域访问。 前端Vue.js应用中,为了配合跨域携带Cookie,需要在发送请求时指定`withCredentials`为`true`。对于使用axios库的情况,可以在全局配置中设置...

    完美解决ajax访问遇到Session失效的问题

    现在Ajax在Web项目中应用广泛,几乎可以说无处不在,这就带来另外一个问题:当Ajax请求遇到Session超时,应该怎么办? 显而易见,传统的页面跳转在此已经不适用,因为Ajax请求是XMLHTTPRequest对象发起的而不

    Session丢失的原因及解决办法

    Session是Asp.net网站的一种重要机制,用于保持用户登录状态和验证码等信息,但是Session丢失的问题却经常出现。那么, Session 丢失的原因是什么?如何解决这个问题呢? Session的工作机制是这样的:第一次访问IIS...

    session session session szsessdifn

    在Web开发中,Session是一个至关重要的概念,尤其是在ASP.NET框架下。Session机制是服务器端存储用户特定信息的一种方式,它允许开发者在多个页面之间保持用户状态,解决了HTTP协议无状态的问题。"szsessdifn"可能是...

    PHP简单实现HTTP和HTTPS跨域共享session解决办法

    当用户在HTTP和HTTPS之间切换时,由于它们属于不同的域,浏览器会认为这是两个不同的环境,因此不会自动传递原有的session ID,导致session丢失。 为了解决这个问题,我们可以手动处理session ID的传递。以下是一种...

    C# SESSION丢失问题的解决办法

    本文将详细介绍几种常见的C# Session丢失问题及其解决办法。 首先,Session状态丢失的原因可能有以下几种: 1. 杀毒软件扫描Web.Config文件。由于Web.Config文件包含了应用程序配置信息,包括Session状态的设置,...

    Session详解(主要讲Session跟Cookic区别)

    - **Session丢失**:当用户清除Cookie或更改浏览器设置时可能导致Session丢失。 - **性能问题**:大量Session数据可能会导致服务器内存占用过高。 - **跨域访问**:当涉及到跨域请求时,需要特别处理Session数据的...

    sessionsession

    Session的工作原理是,当用户访问服务器并进行登录或其他需要记录状态的操作时,服务器会在内存中创建一个唯一的Session ID,并将其发送给浏览器。这个Session ID通常以Cookie的形式存储在客户端。之后,每当客户端...

    redis实现session一致性的Lib

    - **负载均衡**:负载均衡器可以根据需求将请求分配给任何服务器,无需担心session丢失或冲突。 - **性能优化**:Redis作为内存数据库,读写速度远快于传统的硬盘存储,提升了session操作的效率。 - **跨域共享**...

    PHP中session全面教程.txt

    - **Session丢失问题**: - 检查是否在输出任何内容之前调用了`session_start()`。 - 确保Cookie没有被禁用。 - 检查Session配置是否正确设置。 - **Session跨域问题**: - 通过设置`session.cookie_domain`来...

    c#实现cookie和session的登陆实例

    在Web开发中,Cookie和Session是两种常见的用户身份验证机制,尤其在C#编程语言中,它们被广泛用于实现登录功能。本实例将探讨如何在C#环境下利用Cookie和Session来处理用户登录状态。 首先,我们要理解Cookie和...

    HUIHUA.rar_session

    在“HUIHUA.rar_session”中,可能包含了一些关于如何在实际项目中创建、读取和销毁`session`,以及如何处理跨域`session`问题的具体示例。通过这些例子,学习者不仅可以理解`session`的基本概念,还能学会如何在...

    asp.net简单会话(session)应用

    在ASP.NET中,默认情况下,当第一个服务器控件或代码尝试访问Session对象时,会话会被自动启动。如果你想在应用程序开始时就明确开启或关闭会话,可以在Global.asax文件中的`Session_Start`或`Session_End`方法中...

    Laravel开发-session

    - **Session丢失**:这可能是由于未正确配置中间件、Cookie问题或错误的驱动设置导致的。检查中间件配置,确保Session Cookie能正确发送。 - **性能优化**:在高并发环境下,考虑使用Redis或Memcached作为Session...

    tomcat8 Redis Session共享

    - **跨域共享**:在分布式环境中,所有服务器都可以访问同一份Session数据。 但也要注意以下事项: - **性能开销**:相比内存中的Session,使用Redis会增加网络I/O和CPU开销。 - **数据一致性**:虽然Redis支持事务...

Global site tag (gtag.js) - Google Analytics