【问题标题】:Sharing web application session with a web service与 Web 服务共享 Web 应用程序会话
【发布时间】:2012-04-05 00:41:32
【问题描述】:

环境:

我们有一个网站和一个单独的ASMX - Web Service共享同一个数据库(MS SQL 2008)。 Web Service 目前正在为移动应用程序提供服务。项目使用 c#、Asp.Net、3.5 框架、VS 2008 完成。

要求:

我们需要避免同一用户同时登录网站和移动应用程序(使用网络服务)。基本上,用户一次只能登录一项服务(网络或应用程序)。此外,用户应该能够在网络浏览器关闭或注销后立即登录移动应用程序。

如果用户在已经登录到其他服务时尝试登录,代码应该有办法找到它以用于通知和限制目的。

我认为AppFabrc 解决了这个要求,但需要我们目前没有的 Windows Server 2008 R2。

希望你有更好的想法??

请注意,这与this 不是同一个问题。

【问题讨论】:

  • user should be able to login to Mobile App as soon as Website is closed (not just properly loggin out from Website) 这是什么意思? Website is closed 是什么意思?
  • 啊,我的意思是只要browser 关闭。 IE;会话不仅应在注销时清除。将编辑问题。谢谢
  • 原谅我的无知 - 我不熟悉这项技术 - 但 AppFabric 在这种情况下如何提供帮助?
  • 我也不是 AppFabric 的专家。但我认为它可以用作站点和服务的session state provider
  • 这是 WCF 服务还是 ASMX 服务?您是否有网站“项目”或 Web 应用程序项目? .NET 和 Visual Studio 的哪个版本?最后,您当前的网站身份验证是否取决于Session

标签: c# asp.net .net-3.5 web asmx


【解决方案1】:

仅供参考...当浏览器关闭时,您不会收到任何通知。您可以根据上次活动时间(基本上跟踪用户活动 - 页面点击等)。我也看不到 appFabric 将如何提供帮助。你还是有同样的问题。

【讨论】:

  • 仅供参考,这个“答案”中的任何内容都与解决 OP 的问题无关。请将个人侧 cmets 留给“评论区”或自己。
【解决方案2】:

正如其他人所提到的,没有简单的方法可以知道某人何时关闭了浏览器。您可以使用 javascript 来检测有人何时离开您的网络应用,但存在一些问题(有关更多信息,请参阅以下问题和答案:How to capture the browser window close event?

如果您愿意接受其他工作流程,您可以试试这个:

  • 当用户登录移动应用时,让移动应用将他从网站上注销。
  • 当用户登录网站时,让网站将他从移动应用程序中注销。

这样,您的用户将立即登录并开始工作,而不必登录、看到错误、从其他应用程序中注销,然后再次登录。

【讨论】:

  • 感谢您的帖子。即使工作流程发生变化,如果从移动应用程序登录,我如何从网站上注销用户?回到第一方。不是吗?
猜你喜欢
  • 2010-12-19
  • 2017-03-19
  • 2013-04-10
  • 1970-01-01
  • 2019-09-27
  • 2010-11-21
  • 2011-03-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多