2011-02-05 77 views
4

我正在寻找一种方法来破坏特定用户的ASP.net会员资格会话。我这样做的原因是我想要删除一个用户的管理员。这工作正常,但如果用户已经有一个活动会话,他仍然被标记为“在线”,直到此会话死亡(我通过使用Current.User.Identity.IsAuthenticated每次验证)。ASP.net会员身份强制用户离线(作为管理员)

我该如何根据授权的用户来查杀会话?这样一来,当我做Memberships.DeleteUser(用户名),我也可以做Sessions.KillByUser(用户名)

在此先感谢


我结束了以下他们的建议,并使用以下方法,任何人谁有同样的问题: http://www.chillaxen.com/2011/02/asp-net-force-a-user-offline-as-admin-destroy-a-session-by-username/

+0

我相信如果你使用DeleteUser,它会注销用户好,但是这篇文章不同意那个http://stackoverflow.com/questions/1909234/log-out-asp-net-user-through- sql – 2011-02-05 10:47:36

+0

保罗,我只是测试它。它没。每次用户点击页面时我都可以检查数据库,但这并不理想。我宁愿能够销毁会话,然后每次我想检查用户是否在线时都强制调用我的数据库(杀死会话点) – 2011-02-05 10:49:16

回答

1

如何添加一个HTTP模块可拦截PostAuthorizeRequest事件:检查用户的凭据对要‘消灭’标识的全局列表。如果有匹配,请杀死用户会话。

+0

并不完全像我想要的那样干净,但那会起作用。谢谢! – 2011-02-05 12:01:06

0

正如Jakob所建议的那样或者您可以在Global.asax中尝试此... 检查登录用户是否位于“要脱机的用户列表”中,然后通过表单身份验证或删除cookie来注销用户。

相关问题