【问题标题】:Logging out users authenticated in more than one location programmatically in Sharepoint 2010在 Sharepoint 2010 中以编程方式注销在多个位置进行身份验证的用户
【发布时间】:2011-12-08 11:19:12
【问题描述】:

如果用户尝试从其他位置登录,我想知道如何以编程方式在 Sharepoint 中注销用户。

谢谢。

【问题讨论】:

  • 另一个位置是什么意思?如果您在 Intranet 中运行 sharepoint,则意味着您只能从 Intranet 访问和登录。

标签: c# security sharepoint login


【解决方案1】:

您所说的另一个位置是指尝试在 2 个不同的设备上登录吗?

所以如果我在电脑上登录,然后尝试在手机上登录,手机应该无法登录,应该将用户注销?

如果这是正确的,那么:

在用户会话开始时

  • 如果用户已经登录,请退出
  • 将登录信息 (IPAddress) 存储在 DB 或应用程序状态中
if (System.Web.HttpContext.Current.Application[System.Web.HttpContext.Current.User.Identity.Name] != null)
{
    System.Web.HttpContext.Current.Response.Redirect("http://<server>/_layouts/SignOut.aspx");
}
else
{
    System.Web.HttpContext.Current.Application[System.Web.HttpContext.Current.User.Identity.Name] = System.Web.HttpContext.Current.Request.UserHostAddress;
}

在用户会话结束时

  • 从数据库或应用程序状态中删除登录信息(IPAddress)
if (System.Web.HttpContext.Current.Application[System.Web.HttpContext.Current.User.Identity.Name] != null && System.Web.HttpContext.Current.Request.UserHostAddress != System.Web.HttpContext.Current.Application[System.Web.HttpContext.Current.User.Identity.Name])
{
    System.Web.HttpContext.Current.Application.Remove(System.Web.HttpContext.Current.User.Identity.Name);
} 

如果您的会话超时时间过长并尝试在原始会话被破坏之前登录到另一台设备,您可能会看到问题。

【讨论】:

    猜你喜欢
    • 2019-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-12
    • 1970-01-01
    • 2010-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多