cookie的跨域登陆问题

jiyouyou 2012-04-28 10:32:51
在网站登陆网站是m.XX.com下设置了cookie的作用域是.XX.com 和.XX.net 登陆时只有.com下的获取到cookie的状态.net下的就获取不到呢,难道要在m.XX.net下登陆这个才行?
设置了路径是/
我是2个coookie类一个类是com的一个是net的,一次登陆调用这两个类。
.net下就是获取不到.com域名下创建的域为.net的cookie额。。求解答
...全文
379 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiyouyou 2012-04-29
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 的回复:]

没得跨 有还得了,我直接写个cookie登录你的网站
[/Quote]
有没有什么状态时是只要是服务器里的网站都能访问到的全局变量呢??
jiyouyou 2012-04-29
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]

1、用Post 或Get将当前登录用户的身份 加密 发送的 B站点,注意加密的时候将当前时间加密进去,用于做超时限制。
2、B站点进行解密,判断身份标示,判断时间。
[/Quote]
嗯谢谢,我试试~~不过时间这个怎么判断超时呢??比如传个2012-4-29-14:00:00 我那边判断依据是什么来判断超时呢
jiyouyou 2012-04-28
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

前几天刚回答过一次,如下
=====================================

首先你这个单点登录涉及到一个浏览器跨域的问题,也就是说,你在A认证通过后,A的session中或者是application中记录了当前用户的登录情况。比如说你使用全局的datatable来存放相关登录情况,可以使用sessionid和userid来检索。那么当你在当前窗口点击B系统的链接……
[/Quote]
就是说做这种登录系统用session会比较好么。session是可以在一个服务器上跨站点使用的么??
hwbox 2012-04-28
  • 打赏
  • 举报
回复
前几天刚回答过一次,如下
=====================================

首先你这个单点登录涉及到一个浏览器跨域的问题,也就是说,你在A认证通过后,A的session中或者是application中记录了当前用户的登录情况。比如说你使用全局的datatable来存放相关登录情况,可以使用sessionid和userid来检索。那么当你在当前窗口点击B系统的链接时,是你是无法得到A系统的相关情况的,特别是A系统的sessionid。
你可以采用以下方法,来告知系统B你在A系统中登录的情况。

1、用B系统链接上加上A系统的sessionid的方式来做。
进入B系统后使用这一个sessoinid向A系统中的webservice进行验证。

2、用页面提交。A系统登录后使用一隐藏帧、form或ajax将当前A系统sessionid提交到B系统。此时当前窗口获取到了B系统的sessionid.并在B系统session中记录了a系统中的sessionid。在访问B系统页面时,可根据session中的A系统sessionid进行对A中一个确权webservic进行访问,获取是否登录和权限的相关信息。

3、使用jsonp,在A系统中,提供一个axhx页。
如下输出
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
context.Response.Write(" getUserCallBack({\"Name\": \"Foo\", \"Id\" : 1234, \"Role\": 1|7|9|8|5, \"UCLC_SessionID\" : " + context.Session.SessionID.ToString() + " });");
}
在b系统中可以使用
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
<script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>
<script type="text/javascript">
function getUserCallBack(data)
{
$("#other_sessionid").val ( data.UCLC_SessionID);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
localhost web server sessionid :<input type="text" runat="server" id="localhost_sessionid" value="" name="localhost_sessionid"/><br />
other domain web server sessionid:<input type="text" id="other_sessionid" value="nothing" name="other_sessionid" /><br />
<script src="http://A系统/a.ashx" type="text/javascript" ></script>
</div>
</form>
</body>
</html>

则在B系统的页面上可以获取,你当初在A系统中使用的session中的数据。再使用这些数据在服务器端进行webservice确权即可。

jiyouyou 2012-04-28
  • 打赏
  • 举报
回复
额。网上找了找单点登录。。各种实现方法不一样啊。。有的是跨子域的。。我像我这种的话。。应该算是跨站点的了。。有哪位使用跨站点的单点登录么。有详细代码更好啊
我不懂电脑 2012-04-28
  • 打赏
  • 举报
回复
cookie是不能跨域的
jiyouyou 2012-04-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

一级域名也不一样了。。 应该不行了吧。。 这我没试过。。
你的系统可以用单点登录啊。
[/Quote]
那除了单点就没其他方式能让一端登陆,另一个站也能获取到信息了呗
hwbox 2012-04-28
  • 打赏
  • 举报
回复
一级域名不一致肯定不行。
RUNBEAR 2012-04-28
  • 打赏
  • 举报
回复
一级域名也不一样了。。 应该不行了吧。。 这我没试过。。
你的系统可以用单点登录啊。
尼古拉特斯拉 2012-04-28
  • 打赏
  • 举报
回复
没得跨 有还得了,我直接写个cookie登录你的网站
cnfcnf 2012-04-28
  • 打赏
  • 举报
回复
1、用Post 或Get将当前登录用户的身份 加密 发送的 B站点,注意加密的时候将当前时间加密进去,用于做超时限制。
2、B站点进行解密,判断身份标示,判断时间。
jiyouyou 2012-04-28
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

net站点 写个api com站点把cookie值加密发给他 如果 cookie值不是很长的话 用rsa 很长的话用对称des

net收到请求 把cookie解密 写入
[/Quote]
这个方法简单明了啊真是。。。 谢谢啊
hwbox 2012-04-28
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
引用 6 楼 的回复:

前几天刚回答过一次,如下
=====================================

首先你这个单点登录涉及到一个浏览器跨域的问题,也就是说,你在A认证通过后,A的session中或者是application中记录了当前用户的登录情况。比如说你使用全局的datatable来存放相关登录情况,可以使用sessionid和userid来检索。那么当……
[/Quote]

我举的例子不是说session的,而是跨域传值,只不过这次是传的sessionid而已,你想传什么都行。

如果是服务器session共享的话,那是另一个问题,解决方案是,首先确保你放在session中的所有对象实例均可以序列化,反序列化。然后把状态保存设为使用sqlserver,再去网上找一下相关的教程,主要是要改一下其中一个session存取的存储过程,来说多个应用都存取一个session。
rayyu1989 2012-04-28
  • 打赏
  • 举报
回复
net站点 写个api com站点把cookie值加密发给他 如果 cookie值不是很长的话 用rsa 很长的话用对称des

net收到请求 把cookie解密 写入

62,267

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧