Asp.net mvc ASP.NETMVC:一个类似预授权的事件,是并发登录的好节流点?

Asp.net mvc ASP.NETMVC:一个类似预授权的事件,是并发登录的好节流点?,asp.net-mvc,authorization,Asp.net Mvc,Authorization,我想在ASP.NET MVC中允许新登录通过同一帐户“踢”上一个登录会话 很明显,我将为每个浏览器提供一个表示会话ID的脚本。我将在服务器端缓存中跟踪当前活动的会话ID。如果已经处于活动状态的用户尝试登录,我将验证业务逻辑(用户名、密码,从上次活动开始至少15分钟),然后更新缓存在服务器上的活动会话ID 现在我的问题是,浏览器持有无效的会话ID。对于我来说,在这种情况下,插入拒绝或重定向以登录的最佳点是什么? 我可以修改authorized属性,但似乎应该有一个更干净的地方来做这件事,不需要我搜

我想在ASP.NET MVC中允许新登录通过同一帐户“踢”上一个登录会话

很明显,我将为每个浏览器提供一个表示会话ID的脚本。我将在服务器端缓存中跟踪当前活动的会话ID。如果已经处于活动状态的用户尝试登录,我将验证业务逻辑(用户名、密码,从上次活动开始至少15分钟),然后更新缓存在服务器上的活动会话ID

现在我的问题是,浏览器持有无效的会话ID。对于我来说,在这种情况下,插入拒绝或重定向以登录的最佳点是什么?

我可以修改authorized属性,但似乎应该有一个更干净的地方来做这件事,不需要我搜索和替换所有authorized属性,例如通过Global.asax事件或控制器事件(我已经在项目中扩展了控制器)


例如,如果存在预授权,我会在那里编写一些代码来测试请求的cookie是否存在有效的用户/会话ID对,如果不存在,我可以简单地从请求中删除身份验证cookie,这将导致标准的未经授权的重定向。

因此经过一点研究,似乎自定义属性通常是正确的方法。然而,在我的例子中,因为我已经实现了一个自定义角色提供程序,所以它只是一行代码。这也让我受益匪浅,因为我只需要单个角色的会话并发性。一个副作用是,使用web.config按角色控制对静态文件的访问也会对会话并发产生影响。

参考了一篇SO文章,该文章建议在global.asax中执行应用程序\u PreRequestHandlerExecute。我正在使用它进行调查…我也必须关闭cookie角色缓存。