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

时间:2011-07-21 17:40:45

标签: 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(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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

不是答案,而是代码改进:有更简单的方法来获取当前用户名/ 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