gpt4 book ai didi

c# - 如何只允许每个用户一个 session

转载 作者:行者123 更新时间:2023-11-30 16:22:15 25 4
gpt4 key购买 nike

我被分配了一项任务来限制单个用户同时使用多个 silverlight 应用程序。理想情况下,每次用户打开新应用程序时,之前的实例都应该收到某种通知并关闭。

Silverlight 应用程序使用通过 REST 端点公开的 WCF 服务来使用数据。目前,对服务的每次调用都将用户名和密码作为参数。这很好,因为我们有无状态服务。已经有一些应用程序使用了这些服务,我正在寻找最不痛苦的解决方案。

谢谢

最佳答案

好吧,因为我误解了这个问题,所以我赶紧回答。我最初以为您指的是同一台计算机上的实例。

为了防止在同一台计算机上出现多个实例,您可以使用 LocalMessageReceiver Class .

你可以看到一个代码示例here这向您展示了如何防止用户打开应用程序的第二个实例。每个 LocalMessageReceiver 必须有一个唯一的 channel 名称作为构造函数参数。如果构造函数抛出异常,您可以假设存在另一个应用程序实例。

如果您只想保留最后一个应用程序实例并关闭之前的应用程序实例,那么您应该为每个实例创建唯一的 channel 名称,然后发送一条消息告诉其他实例关闭。

为了防止应用程序在不同计算机上的多个实例 我不太有资格回答,但首先想到的是每当用户登录时写入数据库..

如果您的服务不一定要保持无状态,那么您可以在用户每次登录时(例如:登录日期?)在数据库表中保留一个唯一标识符,然后每当用户想要执行某些操作时操作,您可以检查数据库中的最后一个标识符是否与您在当前 session 中拥有的标识符相对应。如果不是,则意味着有人从另一台计算机以同一用户登录,因此您可以使 session 过期。

关于c# - 如何只允许每个用户一个 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12641306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com