Tenemos un escenario donde necesitamos que un formulario de infoPath pueda ser ejecutado por la cuenta del sistema ya que tenemos una lista que solo pueden ver los administradores por temas de LOPD.
Para ello la solución que proponemos es realizar un WebPart donde se haga un embed del formulario infoPath entre los using de RunWithElevatedPrivileges como podemos ver en el siguiente ejemplo,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
using System; using ASP = System.WebUIWebControls; using System.Web; using Microsoft.Office.InfoPath.Server.Controls; using Microsoft.SharePoint; namespace WMDDWebParts { public class FormViewer : ASPWebPartsWebPart { protected override void CreateChildControls() { SPSecurityRunWithElevatedPrivileges(delegate() { XmlFormView formView; formView = new XmlFormView(); formViewWidth = ASPUnitPercentage(100); formViewHeight = ASPUnitPixel(100); formViewXsnLocation = "Path to form XSN"; formViewShowHeader = false; formViewShowFooter = false; } thisControlsAdd(formView); baseCreateChildControls(); } } }