Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 限制ASMX服务中不同设备的并发登录_C#_Asmx - Fatal编程技术网

C# 限制ASMX服务中不同设备的并发登录

C# 限制ASMX服务中不同设备的并发登录,c#,asmx,C#,Asmx,我有一个webservice,它使用ASMX webmethod等(我知道,已经过时),它用于为移动设备提供应用程序的数据 现在,用户可以在任何时间登录任何设备,登录次数可以是他们想要的次数。为了使此产品与新的许可模式兼容,我们希望限制用户登录到多个设备 用户一次只能在一个设备上登录 我想到了以下解决方案:将上次在请求中使用的移动设备标识符以及请求的时间保存在数据库中。如果用户尝试从另一个移动设备标识符登录(在10分钟内)->登录失败 我的问题是:我应该用哪种方法来编写代码。我希望尽可能避免重复

我有一个webservice,它使用ASMX webmethod等(我知道,已经过时),它用于为移动设备提供应用程序的数据

现在,用户可以在任何时间登录任何设备,登录次数可以是他们想要的次数。为了使此产品与新的许可模式兼容,我们希望限制用户登录到多个设备

用户一次只能在一个设备上登录

我想到了以下解决方案:将上次在请求中使用的移动设备标识符以及请求的时间保存在数据库中。如果用户尝试从另一个移动设备标识符登录(在10分钟内)->登录失败

我的问题是:我应该用哪种方法来编写代码。我希望尽可能避免重复代码

我有带API的4.asmx文件,我可以将代码放入所有类的构造函数中,但我不希望这样。是否有一些“请求启动”已经可以访问GET/POST参数?

请参阅:

我知道你在问关于ASMX的问题,但我相信这将是一个很好的起点

我也有同样的要求,并提出了一个非常巧妙的解决方案,如上面的链接所示。简而言之,我的要求是一次只能有一个用户登录。如果同一用户ID尝试在其他地方登录,则它会通过检查不同会话ID下的现有登录来终止第一次登录的会话(这使用户ID能够从其计算机上的多个web浏览器实例[相同会话ID]登录,这是常见的,但不是从不同的计算机登录)[不同的会话ID](可能是因为某人盗取了他们的凭据)。通过修改代码,您可能会更改此会话的行为-即,阻止第二次登录尝试,而不是终止已处于活动状态且正在使用的第一次登录

当然,它可能无法100%满足您的需求,所以请随意修改它以满足您的需求