如何实现在同一个服务器上的不同站点间的登录信息共享?

bmsi 2009-09-28 05:03:18
服务器是WIN2003、IIS6,ASP.NET 2.0,
如何实现两个站点间一次登录,就可以访问任意一个站点?
如:在服务器的根目录登录,HTTP://SERVER/ ,用户名为USER
在站点HTTP://SERVER/A和站点HTTP://SERVER/B下就可不用再登录,既可获取用户USER的登录信息?
请问用ASP.NET,如何实现?
谢谢各位前辈.
...全文
399 37 打赏 收藏 转发到动态 举报
写回复
用AI写文章
37 条回复
切换为时间正序
请发表友善的回复…
发表回复
bmsi 2009-09-28
  • 打赏
  • 举报
回复
感谢大家的参与。
特别感谢jiezi316,在他的帮助下问题解决,谢谢!
小_虎 2009-09-28
  • 打赏
  • 举报
回复
我怎么觉得楼主根本就没有问题啊。


他这个涉及到了Session和Cookie不能共享的问题吗、

直接就可以共享吧
shove 2009-09-28
  • 打赏
  • 举报
回复
1 跨域共享 Session:
Session 都存放到 SQLServer,修改 AspState 数据库的一个存储过程,TempGetAppID,使其返回一个固定值。

2 不同的域是不能共享 Cookie 的,而 Session 一般存在 Cookie 的 Aspnet_SessionId 键中,不能共享,但可以复制:
建一个中间站点,只有一个页面,返回 Session 用;
其他站点 Cookie 中建一个键为 是否已经同步SessionID 的值;
其他站点打开页面,首先判断上述值,如果已经同步,则继续,如果没有,则 Redirect 到中间站点,得到一个 SessionID, 将得到的 SessionID 写入本站点的 Cookie 的 Aspnet_SessionId 键中。这样,同一浏览器进程的 SessionID 就是一样的。

3 由于 SessionID 一样了,而 Session 是存放到 SQLServer 的,大家都存在同一个地方,所以,这样就实现了多域共享 Session.


有例子,需要的话留 mail.
zzxap 2009-09-28
  • 打赏
  • 举报
回复
新建一个中间的数据库
zzxap 2009-09-28
  • 打赏
  • 举报
回复
在数据库新建一个共享信息的数据表
bmsi 2009-09-28
  • 打赏
  • 举报
回复
[Quote=引用 28 楼 wuyq11 的回复:]
Session不能跨机器的
通过数据库保持相关值或调用web services实现
通过设置cookie的Domain
HttpCookie cookie =  new  HttpCookie("" ,"" );
cookie.Domain ="" ;
http://topic.csdn.net/t/20050406/16/3914303.html#

[/Quote]
我们的应用程序是在一个服务器上的同一个根目录下的,不是跨服务器的
gxb15131163105 2009-09-28
  • 打赏
  • 举报
回复
能不能先用xml文件记录一下,到时在读取文件呢?
wuyq11 2009-09-28
  • 打赏
  • 举报
回复
session默认是在服务器保存的 跨服务器不行
cookie和域有关,跨域不行
wuyq11 2009-09-28
  • 打赏
  • 举报
回复
Session不能跨机器的
通过数据库保持相关值或调用web services实现
通过设置cookie的Domain
HttpCookie cookie = new HttpCookie("" ,"" );
cookie.Domain ="" ;
http://topic.csdn.net/t/20050406/16/3914303.html#
bmsi 2009-09-28
  • 打赏
  • 举报
回复
整个BIN文件夹全拷进去了
jiezi316 2009-09-28
  • 打赏
  • 举报
回复

你的DLL是否都拷贝进去了哇?
下班了,要聊天加QQ 16135854
bmsi 2009-09-28
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 jiezi316 的回复:]
不设置分站点,但你要把其他程序的 bin下面的程序集拷贝到站点目录下的bin里面!其他程序子目录删除WEB.CONFIG

[/Quote]
也这样操作过,可是提示
未预编译文件“/WJ/bmfile.aspx”,因此不能请求该文件。
jiezi316 2009-09-28
  • 打赏
  • 举报
回复

不设置分站点,但你要把其他程序的 bin下面的程序集拷贝到站点目录下的bin里面!其他程序子目录删除WEB.CONFIG
bmsi 2009-09-28
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 jiezi316 的回复:]
你操作正确不呢?

[/Quote]
能详细讲一下如何正确操作呢,谢谢!!
bmsi 2009-09-28
  • 打赏
  • 举报
回复
我们在所有的站点下都规定用SESSON(“NM”)进行断送是否登录,如果没有登录就会跳转到登录页面。
在服务器根目录下用放置了登录页面和登录后的链接页面,各个应用程序放置在根目录下,
不管是分别设置分站点,还是不设置站点都无法共享登录信息
设置分站点,在根目录下登录后点击链接就会跳转到登录页面
如果不设置分站点,直接加到根目录下就会提示没有预编译
不知是何原因!
tuoshi 2009-09-28
  • 打赏
  • 举报
回复
多站点用户登录共享也可以用一个公用的Web Services来处理。
jiezi316 2009-09-28
  • 打赏
  • 举报
回复

你操作正确不呢?
jiezi316 2009-09-28
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 bmsi 的回复:]
我们是放到服务器站点的根目录下了,而且也删除了各分站点下的WEB.CONFIG文件了,可是不能共享SESSON信息
[/Quote]

已经是一个站点下的东西了,怎么可能不能共享??
bmsi 2009-09-28
  • 打赏
  • 举报
回复
我们是放到服务器站点的根目录下了,而且也删除了各分站点下的WEB.CONFIG文件了,可是不能共享SESSON信息
Nobel0429 2009-09-28
  • 打赏
  • 举报
回复
2个网站分别做一张空白页面 分别用iframe隐藏在对方页面内 登录的时候做到双登录,目前我能想到最简单的方法了
加载更多回复(16)

62,041

社区成员

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

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

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

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