【问题标题】:Sharing a session between two web applications在两个 Web 应用程序之间共享会话
【发布时间】:2016-12-06 10:32:28
【问题描述】:

这是场景

我有两个 Web 应用程序,网站 A(c# webforms) 和网站 B(c# MVC)

网站 B 在 IIS 中设置为网站 A 下的应用程序。

当用户登录网站 A 时,我希望用户能够访问网站 B,就像他们已经访问网站 B 并登录一样。

我创建了一个 Web 服务,当用户登录网站 A 时登录网站 B,但这似乎没有达到预期的效果,我猜是因为 2 个应用程序不共享会话?有没有办法让这 2 个应用程序共享同一个会话?

【问题讨论】:

  • 你为什么不使用网络服务呢?
  • 如果这些应用在不同的解决方案下,那么我认为你不能共享会话变量。如果是这样,那将是不安全的。正如@Transcendent 所说,网络服务会有所帮助。他们应该查看相同的来源来检查用户登录状态。
  • 如果你真的不想使用网络服务(这是标准方式),你可以使用跨域cookie并在两端使用它们,虽然我不推荐它。
  • 我正在使用网络服务。当有人登录网站 A 时,它会调用网站 B 上的 Web 服务。不幸的是,用户仍然没有退出网站 B。如果您在本地调用它,该 Web 服务就没有问题。
  • 您说“我创建了一个 Web 服务,当用户登录网站 A 时会登录网站 B”。这一步到底发生了什么?

标签: c# session


【解决方案1】:

您不能在 2 个应用程序之间共享 Web 会话,但您可以将后端逻辑移动到 Web api,并在 2 个网站之间共享,基于令牌的授权,您只需输入一次并使用令牌授权请求。

【讨论】:

  • 所以当他们访问网站 b 我必须在查询字符串中传递一个令牌?
  • 如果将后端实现为 Web API ,通常在 Authorization 头字段中传递令牌。
  • 可以用 Session 用 SQL 完成吗?就像你用它来为 2 个不同的服务器共享同一个会话一样?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-04
  • 2016-10-11
  • 1970-01-01
  • 2011-09-23
  • 2012-12-24
  • 2022-11-05
  • 2016-07-16
相关资源
最近更新 更多