SharePoint会话是否跨多个用户持久化?
我有一个自定义web部件,它从获取当前用户登录名开始,如下所示:SharePoint会话是否跨多个用户持久化?,sharepoint,sharepoint-2007,Sharepoint,Sharepoint 2007,我有一个自定义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
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门户,则该用户会看到我的培训,而不是他的培训,即使该用户已使用通用访问卡以其唯一凭据登录,就像我一样
不知何故,一些奇怪的会议似乎持续,我希望有人在这里遇到了这种异常
提前谢谢
Risho您误用了static-静态属性在每个web服务器进程中存储一次,而不是每个用户存储一次。不是答案,而是代码改进:有更简单的方法获取当前用户名/id
SPUser user = Microsoft.SharePoint.[SPContext][1].Current.Web.CurrentUser;
user.ID;
user.Email;
user.Name
user.LoginName;
user.Grups;
....