Tuesday, 3 June 2014

How to Access and Update User Information List Programmatically.



To acces the hidden User Information List list of a SharePoint site (only accessible by administrators), the best way is to use the SiteUserInfoList property of the SPWeb object as in the following example:

 

// Button1- title and Internal name of User Information list

 

protected void Button1_Click(object sender, EventArgs e)

        {

 

            DataTable dtt = new DataTable();

            dtt.Columns.Add("Title ", typeof(string));

            dtt.Columns.Add("InternalName", typeof(string));

 

 

            SPSecurity.RunWithElevatedPrivileges(delegate()

            {

                using (SPSite site = new SPSite("http://abc/"))

                {

                    using (SPWeb web = site.OpenWeb())

                    {

                        SPList listUserInfo = web.SiteUserInfoList;

                        SPFieldCollection fieldColl = listUserInfo.Fields;

                        foreach (SPField field in fieldColl)

                        {

                            Console.WriteLine("Name:{0} - Type:{1}", field.Title, field.TypeAsString);

 

                            dtt.NewRow();

                            //dtt.Rows.Add(words[i], words2[i], words3[i]);

                            //dtt.Rows.Add(a, b, c, txt4,txt5,txt6,txt7,txt8,txt9,txt10);

                            dtt.Rows.Add(field.Title, field.InternalName);

                        }

 

                        GridView1.DataSource = dtt;

                        GridView1.DataBind();

                    }

                }

            });

        }

 

// Button2 – fetch record from user information list

 

 

        protected void Button2_Click(object sender, EventArgs e)

        {

 

            DataTable dt = new DataTable();

            dt.Columns.Add("ID", typeof(string));

            dt.Columns.Add("Title", typeof(string));

            dt.Columns.Add("User Name", typeof(string));

            dt.Columns.Add("Email", typeof(string));

 

 

            using (SPSite mySiteCollection = new SPSite("http://abc/"))

                {

                    using (SPWeb mySite = mySiteCollection.OpenWeb(mySiteCollection.RootWeb.ID))

                    {

                        SPList usersList = mySite.SiteUserInfoList;

 

                        SPListItemCollection oSpListCln = usersList.Items;

 

                        //iterate through all the items in itemcollection object

                        foreach (SPListItem item in oSpListCln)

                        {

                            dt.NewRow();

                           

     dt.Rows.Add(item["ID"], item["Title"], item["UserName"], item["EMail"]);

                        }

 

                        GridView2.DataSource = dt;

                        GridView2.DataBind();

                    }

                }

        }

 

 

// Button3 – update record from user information list

 
        protected void Button3_Click(object sender, EventArgs e)

        {

 

            using (SPSite mySiteCollection = new SPSite("http://abc/"))

            {

                using (SPWeb mySite = mySiteCollection.OpenWeb(mySiteCollection.RootWeb.ID))

                {

                    mySite.AllowUnsafeUpdates = true;

                    SPList usersList = mySite.SiteUserInfoList;

 

//in ID(column) have record which contain 5(value) number                   

 

SPListItem item = usersList.GetItemById(Convert.ToInt32("5"));

 

                    item["EMail"] = "abc@hotmail.com";

 

                    item.Update();

                }

            }

  }

No comments:

Post a Comment