No hace mucho tuve que desarrollar una WebPart para inserta programáticamente elementos sobre una lista personalizada de SharePoint. EL ambiente sobre el que estaba corriendo mi aplicación web era de un sitio SharePoint de publicación para internet con autentificación por formularios habilitada y acceso anónimo soportado. Cuando se ejecutaba mi código me mandaba a una página de denegación de acceso debido a credenciales no validas. Por supuesto que esto es un escenario donde se requiere “Impersonation”.
A continuación dejo una de las tantas opciones disponibles en código para lograr “Impersonation” en una WebPart de SharePoint 2007.
SPSecurity.RunWithElevatedPrivileges(delegate() { using (SPSite s = new SPSite(siteUrl)) { SPWeb w = s.OpenWeb(); w.AllowUnsafeUpdates = true; w.Update(); SPList myList = w.Lists[listName]; SPListItem new = myList.Items.Add(); new["field1"] = txtField1.Text; new["field2"] = txtField2.Text; new["field3"] = this.Page.Request.Url.ToString(); new["field4"] = txtField3.Text.ToString(); new.Update(); } });
Este fue el code del dia. Saludos
** cross posting desde geeks.ms
Excelente y oportuno tu código, gracias, y ya aprovechando fijate que quiero leer los valores de una lista de moss ya lo intente con SPSiteDataQuery y usando la colección Fields de la lista y nada más no le atino y digo no le atino porque no he tomado curso alguno ni antes he tenido experiencia con esta maravilla llamada Sharepoint.
Ojala puedas apoyarme, mi correo es vmramiro@hotmail.com y estaré pendiente de tu blog.
Muchas gracias y mis mejores deseos