【问题标题】:asp.net sessionId to restore session objectasp.net sessionId 恢复会话对象
【发布时间】:2016-09-27 13:38:52
【问题描述】:

在我的 ASP.NET 应用程序中,有时我必须重定向到另一个域来进行用户身份验证,如果成功,该域将重定向回我的域。

例如:

my domain:    www.domainA.com
other domain: wwww.domainB.com
flow: domainA.com (goes to)-> domainB.com (goes to)-> domainA.com

所以我想做的是在转到 domainB 之前将会话对象存储在 domainA 中,然后在返回到 domainA.com 时恢复会话对象。(不确定这是否可能)

我所说的是,asp.net 通过使用 sessionID 将创建一个名为“ASP.NET_SessionId”的 cookie,因此当它返回我的域时,它将用于恢复会话.(再次不确定这是不是真的)

如果上述说法属实,我该如何恢复会话对象?

如果不是这样,那么我如何将我的会话对象存储在 domainA.com 中,直到它通过 domainB.com 的身份验证流程然后返回到 domainA.com?

P.S:当它返回到 domainA.com 时,cookie 仍然存在,具有相同的值。

【问题讨论】:

  • 很难回答您的问题,因为您描述了会话状态的默认行为。因此,如果您描述 认为会话状态如何工作,则可能会有所帮助...(或阅读ASP.NET Session State Overview)和edit您的帖子...
  • @AlexeiLevenkov 感谢您的回复。我认为该会话在浏览 domainA.com 时会保持活动状态,并且会在您转到 domainB.com 时丢失。我将对此进行更多研究,并将在病房后更新问题。谢谢

标签: c# asp.net asp.net-mvc session


【解决方案1】:

Session 变量存储在服务器上。为每个新用户创建一个新的会话变量。服务器用唯一的会话 ID 存储用户的会话,这样每个用户的 Session 都可以唯一标识。

SessionID 是客户端详细信息的组合,例如用户 IP、使用的浏览器、浏览器版本、操作系统、操作系统版本等。

我们可以使用HttpCookie("ASP.NET_SessionId", "") 获取这个 sessionID。在重定向到另一个页面之前,您可以将其保存在会话对象中。如果用户身份验证成功,您可以将布尔值从“domainB”页面传递到“domainA”页面。如果布尔值为真,则恢复会话,否则不恢复。

有关 SessionID 使用的更多信息:Refer this page.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-13
    • 2020-05-21
    • 1970-01-01
    相关资源
    最近更新 更多