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 不会持续存在