单实例登录实现

2024-03-27

我在我的项目(在 ASP.NET 2.0 中构建的 Web 应用程序)中遇到了一个严重的问题,如下所述。

假设我已经给出了用户 ID“singh_nirajan”,并且用户说“User1”使用该用户 ID 登录到系统。现在我的要求是每当其他用户假设用户“User2”尝试使用相同的(singh_nirajan)用户ID登录系统时,它将显示一条消息“singh_nirajan已经登录”。

为了实现相同的目的,我只需更新数据库中的一个标志。同样,每当用户正确注销时,我们都会更新数据库中的标志。我们还处理了一些用户无法正确注销的情况,如下所示。

  1. 单击 (X) 关闭即可关闭浏览器
  2. 会话超时
  3. On Error

但不知何故,由于网络故障、电源故障或任何此类原因,用户突然注销。我无法更新数据库中的标志,这就是为什么用户无法使用相同的用户 ID 登录,除非我们手动更新该标志。

上述实施的原因:

有时,用户打开多个浏览器并在不同的浏览器中开始繁重的处理任务,很多时候他们共享他们的用户 ID 和密码,这有时会引发并发问题。为了限制这种情况,我们需要实现单实例登录。

任何人都可以建议我任何其他方法来实现上述目标。

提前致谢。


浏览器本质上是断开连接的系统(无论出于何种意图和目的)。你不能rely在收到有关用户浏览器会话结束的任何通知(来自客户端)时。

亲自(作为用户)我会发现这种单点登录行为很烦人,因为我经常在不同的计算机上访问同一个网站(笔记本电脑、台式机、家庭、工作、虚拟机主机、虚拟机来宾)或者只是同一台计算机上的多个浏览器(特别是浏览器兼容性测试),但我承认这可能是一个要求。

IMO,如果您有“单会话”要求,更好的方法是“最后胜利” - 即,如果您登录第二个会话,您就注定了第一个会话(本质上破坏了他们的令牌) - 所以first会话被注销。那是easy要做的事情(在数据库中,只需在登录时更改 guid 或增加计数器(针对特定用户))。如果需要,您可以记录 IP(或其他)second与您注定失败的会话相对应,但如果第二个会话可以将自己验证为“singh_nirajan”,那么在大多数常见情况下这应该足够了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

单实例登录实现 的相关文章

  • 我如何理解这个 C 类型声明?

    double bar int double double double double 在查看讲座幻灯片时 我发现了留给学生的练习 用简单的英语来说 什么是类型bar在这个 C 声明中 Please帮助我解决这个问题 我什至不知道从哪里开始
  • 使用 Enumerable.OfType() 或 LINQ 查找特定类型的所有子控件

    Existed MyControl1 Controls OfType
  • 平滑滚动.net 表单

    您好 我正在 net 中使用表单 并且在运行时动态添加大量链接标签 我将这些链接标签添加到面板并将该面板添加到 winform 当链接标签的数量增加时 表单会显示一个自动滚动条 垂直 现在 当我使用自动滚动向下滚动时 表单在滚动时不会更新其
  • 与 Qt 项目的静态链接

    我有一个在 Visual Studio 2010 Professional 中构建的 Qt 项目 但是 当我运行它 在调试或发布模式下 时 它会要求一些 Qt dll 如果我提供 dll 并将它们放入 System32 中 它就可以工作 但
  • 指向特征矩阵的指针数组

    我在代码中使用 Eigen 的 MatrixXd 矩阵 在某个时刻我需要一个 3D 矩阵 由于 Eigen 没有三维矩阵类型 因为它仅针对线性代数进行了优化 因此我创建了一个 MatrixXd 类型的指针数组 Eigen MatrixXd
  • 找不到 assimp-vc140-mt.dll ASSIMP

    我已经从以下位置下载了 Assimp 项目http assimp sourceforge net main downloads html http assimp sourceforge net main downloads html Ass
  • 类的成员复制

    在学习 复制成员 概念时 书中给出了如下说法 此外 如果非静态成员是引用 const 或没有复制赋值的用户定义类型 则无法生成默认赋值 我不太明白这个声明到底想传达什么 或者说这个说法指的是哪一种场景 谢谢 该语句与编译器自动为您编写的类
  • 从 WebBrowser 控件 C# 获取滚动值

    我试图在 WebBrowser 控件中获取网页的 Y 滚动索引 但无法访问内置滚动条的值 有任何想法吗 对于标准模式下的 IE 使用文档类型 正如你所说 scrollTop是的财产元素 而不是 HtmlDocument htmlDoc th
  • 如何在服务器端按钮点击时关闭当前标签页?

    我尝试在确认后关闭当前选项卡 因此我将以下代码放在确认按钮的末尾 但选项卡没有关闭 string jScript ClientScript RegisterClientScriptBlock this GetType keyClientBl
  • AES 输出是否小于输入?

    我想加密一个字符串并将其嵌入到 URL 中 因此我想确保加密的输出不大于输入 AES 是可行的方法吗 不可能创建任何始终会创建比输入更小的输出的算法 但可以将任何输出反转回输入 如果您允许 不大于输入 那么基本上您只是在谈论同构算法alwa
  • 如何在标准 WPF ListView 中启用 UI 虚拟化

    我正在使用 NET 4 5 VS2012 并且我有一个 ListView 看起来像这样
  • 运行选定的代码生成器时出错:“未将对象引用设置到对象的实例。”错误?

    我已经尝试了所有解决方案 例如修复 VS 2013 但没有用 当您通过右键单击控制器文件夹来创建控制器并添加控制器时 然后右键单击新创建的控制器的操作并选择添加视图 当我尝试创建视图时 就会发生这种情况 它不是一个新项目 而是一个现有项目
  • 是否有相当于 Clang/LLVM 的 .spec 文件,在哪里可以找到参考?

    The gcc驱动程序可以配置为使用特定的链接器 特定的选项和其他细节 例如覆盖系统头 specs files 当前 截至撰写本文时 GCC 版本 4 9 0 的手册此处描述了规范文件 https gcc gnu org onlinedoc
  • .NET Core 中的跨平台文件名处理

    如何处理文件名System IO以跨平台方式运行类以使其在 Windows 和 Linux 上运行 例如 我编写的代码在 Windows 上完美运行 但它不会在 Ubuntu Linux 上创建文件 var tempFilename Dat
  • 使用restsharp序列化对象并将其传递给WebApi而不是序列化列表

    我有一个看起来像的视图模型 public class StoreItemViewModel public Guid ItemId get set public List
  • 跨多个域的 ASP.NET 会话

    是否有合适的 NET 解决方案来在多个域上提供持久服务器会话 即 如果该网站的用户在 www site1 com 下登录 他们也将在 www site2 com 下登录 安全是我们正在开发的程序的一个问题 Thanks 它是否需要在会话中
  • 每个数据库多个/单个 *.edmx 文件

    我有一个通过 ADO net 数据服务与数据库交互的项目 数据库很大 近 150 个具有依赖关系的表 该项目几年前开始 当时使用的是数据集 现在我们正在转向实体模型关系 由于我们添加了更多需要使用的表 该模型正在不断增长 这是管理这一切的正
  • 矩阵到数组 C#

    这将是转换方阵的最有效方法 例如 1 2 3 4 5 6 7 8 9 into 1 2 3 4 5 6 7 8 9 in c 我在做 int array2D new int 1 2 3 4 5 6 7 8 9 int array1D new
  • 使用 QtWebEngine 将 C++ 对象暴露给 Qt 中的 Javascript

    使用 QtWebkit 可以通过以下方式将 C 对象公开给 JavascriptQWebFrame addToJavaScriptWindowObject如中所述https stackoverflow com a 20685002 5959
  • 从 JavaScript 中的 OnClientClick 事件中阻止 C# 中的 asp:Button OnClick 事件?

    我有一个asp Button在我的网页上 它调用 JavaScript 函数和代码隐藏方法 后者进行调用以导航到另一个页面 在 JavaScript 函数中 我正在检查条件 如果不满足这个条件 我想中止导航 以便OnClick方法未被调用

随机推荐

  • 纵向模式下的 AVVideoCompositionCoreAnimationTool 和 CALayer?

    我正在尝试使用 iOS 4 3 上的 AVMutableComposition AVMutableVideoComposition 和 AVVideoCompositionCoreAnimationTool 将 CALayer 烘焙为纵向模
  • 我可以让这个脚本更快吗?

    我为实习编写了一个简单的脚本 该脚本会遍历提供的目录并删除任何早于指定天数的文件 我今天花了所有的空闲时间试图加强它 这是我到目前为止所得到的 function delOld dir numDays timespan new timespa
  • SQL查询-过滤掉仅包含空格的字段

    我需要编写一个 sql 查询来过滤掉字段中空格数量不断变化的行 例如 我有这个查询 SELECT MEMO SYSTEM TXT FROM EE dbo EE Billing Memo where MEMO SYSTEM TXT is no
  • Rails 验证类型日期?

    我想我可能是在做梦 但我想我在某处读到可以在保存对象之前验证对象属性的类型 某物 喜欢validates transaction date type gt Date这将确保它是一个约会 这在 Rails 3 2 中可能吗 我正试图在网上找到
  • 如何将模型数据从一个控制器传递到另一个控制器

    将模型数据从一个控制器传递到另一个控制器是否可能 我想将模型数据从一个控制器传递到另一个控制器 HttpPost public ActionResult Personal StudentModel student return Redire
  • MATLAB中如何将图像分成块?

    我有一个 256x256 的图像 我想将其分为 4 个 128x128 的块 并将它们寻址为 A1 到 A4 现在我想分别调用它们并对它们进行一些操作 我知道这可以使用blkproc功能 但具体是怎样的呢 我打电话吗blkproc像这样 B
  • 将 Watch 应用程序启动到中间视图

    基本上 我的应用程序以页面格式布局 我希望它启动到三个页面的中间 无法设置上一页的转场 所以我一直在尝试用代码来做到这一点 我将主视图设置为第一个视图 并且我尝试了多种方法来在应用程序启动后立即切换到中间视图 这是我尝试过的两种方法 if
  • R 保留数据框中每个日期的前 10 行

    我有一个按日期排序的股票数据数据集 然后按该日期的回报率从最大到最小排序 每天大约有800只股票 我如何创建一个新的数据框架 其中仅包含每天收益最高的 10 只股票 所以我需要每个日期的前 10 名 其他的我不关心 dplyr 是你的朋友
  • 如何使用 Twilio Java SDK 发送批量短信?

    我找到了大量关于如何使用 Js Python PHP SDK 发送大量短信的信息 但没有任何关于如何使用 Js Python PHP SDK 发送大量短信的信息如何使用 Java 实现这一点 以下是演示 Python 实现的代码片段 fro
  • 一段时间后 Adb 停止检测我的手机

    我正在 Linux 机器上为 android 开发 并且我已经创建了一个udevandroid 规则并且它有效 一段时间后 如果我拔掉设备并再次插入 adb如果我运行则无法识别该设备lusb or dmesg获取有关设备的信息 我尝试重新加
  • EA Sparx 查询中的WITH 子句

    是否可以在 EA Sparx 查询中使用WITH 子句 我写了这个 with Activities as select t connector start object id as Object2 id t object from t ob
  • 如何启用 python repl 自动完成并仍然允许新行选项卡

    我目前有以下内容 pythonrc在 python repl 中启用自动完成 Autocompletion import rlcompleter readline readline parse and bind tab complete 然
  • ASP.NET 中的会话超时

    我正在 IIS 6 0 中运行 ASP NET 2 0 应用程序 我希望会话超时为 60 分钟 而不是默认的 20 分钟 我做了以下事情 Set
  • 如何计算张量流中张量 A 沿张量 B 指定的权重的轴的加权平均值?

    我正在尝试对 RNN 输出应用加权平均方案 RNN输出用张量表示A有维度 a b c 我可以简单地采取tf reduce mean A axis 1 得到张量C有维度 a c 但是 我想做张量的 加权平均值 A along axis 1 权
  • 使用 Emacs 或 VIM 的 Colemak 键盘 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我一直在待办事项清单上划掉一些事情 我最近拿起了 Colemak 接下来我想学习Vim或Emacs 我倾向于 Vim 但它的好处之一是坚持主行 有了
  • Android 5-5.1 (API 21-22) 上的 WebView 崩溃 Resources$NotFoundException: 字符串资源 ID #0x2040002

    我正在将 Android 应用程序从 API 27 更新到 API 29 我注意到在尝试在基于 5 0 和 或 5 1 的模拟器上渲染 WebView 时发生崩溃 在运行 6 0 或更高版本 API 23 29 的模拟器上不会发生此问题 我
  • 如何实现和维护多个actionListener

    好的 我有一个类 我们称之为 MenuBarClass 其中包含多个 Menu 和 MenuItem 我想为每个 MenuItem 分配一个动作侦听器 但是 而不是执行以下操作 menuitem 1 addActionListener ne
  • 包内初始化订单

    我有文件 main a go b go c go a go package main import fmt func init fmt Println a func main b go package main import fmt fun
  • 如何在mininet中将不同的交换机连接到不同的遥控器?

    我想将 mininet 虚拟网络的不同交换机连接到不同的远程控制器 但不知道如何继续 请提供任何方法来做到这一点 任何 python 示例都值得赞赏 我推荐你阅读此邮件形式为 mininet 的邮件列表档案 https mailman st
  • 单实例登录实现

    我在我的项目 在 ASP NET 2 0 中构建的 Web 应用程序 中遇到了一个严重的问题 如下所述 假设我已经给出了用户 ID singh nirajan 并且用户说 User1 使用该用户 ID 登录到系统 现在我的要求是每当其他用户