如何程序获取用户信息
时间:2010-06-17 来源:sdwjian


/// <summary>
/// 绑定开发人员名单
/// </summary>
private void getDeveloper()
{
DataTable dr = new DataTable();
dr.Columns.Add("sName", typeof(string));
SPWeb rootWeb = SPControl.GetContextSite(Context).RootWeb;
foreach (SPUser user in rootWeb.Groups["developer"].Users)
{
if (user.Name != "系统帐户")
{
DataRow dt =dr.NewRow ();
dt[0] = user.Name;
dr.Rows.Add(dt);
}
}
this.ddlDeveloper.DataSource = dr;
this.ddlDeveloper.DataTextField = "sName";
this.ddlDeveloper.DataValueField = "sName";
this.ddlDeveloper.DataBind();
}
// SPUser currentUser = SPContext.Current.Web.CurrentUser;
//string loginName = SPContext.Current.Web.CurrentUser.LoginName;
//string name = SPContext.Current.Web.CurrentUser.Name;
代码说明:根据rootWeb.Groups["developer"].Users获取开发人员所有组员的人员集合,除掉系统帐户,把所有的用户信息附加到下拉列表框中。下面是关于操作用户和用户组的对象模型说明:
1):SPUser:用户对象,域用户;
2):SPUserCollection:用户对象集合;例如:rootWeb.Groups["developer"].Users
3):SPGroup:用户组;
4):SPGroupCollection:用户组的集合。
2:提交BUG的事件程序如下:我在开发时遇到一个问题就是如何取域用户的友好名称?例如当前的域:a.com,用户名:jiangmin,域用户信息中的友好名称为姜敏。我总结以了以个几种关于取域用户信息的方法:
1):User.Identity.Name; //读取域登录用户名,格式为Domainname\\username (域名名称"用户名称),返回结果a.com\\jiangmin;
2):username返回结果jiangmin ;
3):SPContext.Current.Web.CurrentUser.Name,返回结果:姜敏,如果当前用户是系统帐户的话会显示成系统帐户,这显示是我们希望看到的结果。