【问题标题】:SharePoint session persist across several users?SharePoint 会话在多个用户之间持续存在?
【发布时间】:2011-10-10 10:52:43
【问题描述】:

我有一个自定义 Web 部件,它首先获取当前用户登录名,如下所示:

protected static string iAm = System.Web.HttpContext.Current.Request.ServerVariables["AUTH_USER"].Split("\\".ToCharArray())[1].ToLower(). 

然后它将这个字符串传递给一个 bbl 类并获取一个用户 ID:

`IDataReader _drInfo = cisf_BLL.bll_MyInfo.drGetMyInfo(iAm);
while (_drInfo.Read())
{
  iUser_Ident = _drInfo.GetInt32(30);
}

`之后,它将用户 id 整数传递给另一个获取用户训练记录的方法:

_drUserTraining = bll_Training.drGet_required_training_records(iUser_Ident);
            _drUserTrainingCompleted = bll_Training.drGet_completed_training_records(iUser_Ident);

然后,此信息将显示在一个标签容器中,其中包含三个标签,例如“过期”、“需要”和“已完成”。

我遇到的问题是:我使用我的域用户名登录到 SharePoint 协作网站,并且我的所有培训都显示得很好。如果我的其他人随后登录到 SP 门户,该用户看到的是我的培训,而不是他的培训,即使该用户使用通用访问卡使用他的唯一凭据登录,就像我一样。

不知何故,一些奇怪的会话似乎持续存在,我希望这里有人遇到了这种异常情况。

提前致谢!

理庄

【问题讨论】:

    标签: sharepoint sharepoint-2007


    【解决方案1】:

    您在滥用静态 - 每个 Web 服务器进程存储一次静态属性,而不是每个用户一次。

    【讨论】:

      【解决方案2】:

      不是答案,而是代码改进:获取当前用户名/id 的方法要简单得多

      SPUser user = Microsoft.SharePoint.[SPContext][1].Current.Web.CurrentUser;
      user.ID;
      user.Email;
      user.Name
      user.LoginName;
      user.Grups;
      ....
      

      http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spuser_members.aspx

      【讨论】:

        猜你喜欢
        • 2013-11-08
        • 2017-12-28
        • 2021-05-14
        • 1970-01-01
        • 1970-01-01
        • 2017-06-04
        • 1970-01-01
        • 2019-04-19
        • 2019-01-09
        相关资源
        最近更新 更多