SharePoint 会话在多个用户之间持续存在?

Posted

技术标签:

【中文标题】SharePoint 会话在多个用户之间持续存在?【英文标题】:SharePoint session persist across several users? 【发布时间】: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 门户,该用户看到的是我的培训,而不是他的培训,即使该用户使用通用访问卡使用他的唯一凭据登录,就像我一样。

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

提前致谢!

理庄

【问题讨论】:

【参考方案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

【讨论】:

以上是关于SharePoint 会话在多个用户之间持续存在?的主要内容,如果未能解决你的问题,请参考以下文章

当用户离线时,Firebase 身份验证会话会持续多长时间?

在 CORS 调用后,Express Session 不会持续存在

用户登录后 Laravel 5 会话不会持续存在

Laravel 4会话不会在页面加载过程中持续存在

用户在 Firestore 远程配置中随机分配的参数值是不是在使用该值的应用程序之间持续存在?

Laravel 5.2 - 会话不会在路由更改中持续存在