Principales respuestas
Proteger y/o publicar imagenes desde c#

Pregunta
-
Buenos días, he creado un webpart en el que el usuario selecciona una imagen de su ordenador y la sube a la biblioteca de documentos del subsitio donde se encuentre, el problema es que cuando la sube un administrador o usuario con permisos 'control total' la imagen puede verla aunque no este protegida, pero si la sube un usuario normal, unavez vaya a ver la imagen (ya subida) no la ve, ya que por defecto no esta protegida, por lo tanto me gustaría saber como puedo publicar y/o proteger una imagen desde el código c# del webpart. El código actual de esa parte del webpart es:
SPWeb webInUserContext = SPContext.Current.Web; SPSite SiteInUserContext = SPContext.Current.Site; Guid webGuid = webInUserContext.ID; Guid siteGuid = SiteInUserContext.ID; SPSecurity.RunWithElevatedPrivileges(delegate() { using (var mySite = new SPSite(siteGuid)) { using (var myWeb = string.IsNullOrEmpty(SubSite) ? mySite.OpenWeb(webGuid) : mySite.OpenWeb(SubSite)) { //Get document library SPDocumentLibrary spdl = myWeb.Lists[LIST_IMAGES] as SPDocumentLibrary; //Setting allows more of the unsafe myWeb.AllowUnsafeUpdates = true; mySite.AllowUnsafeUpdates = false; string fileExtension = FileUpload1.FileName.Substring(FileUpload1.FileName.IndexOf(".")); string fileName = (FileUpload1.FileName.Split('.').Length > 0) ? FileUpload1.FileName.Split('.')[0] : FileUpload1.FileName; byte[] fileBytes = FileUpload1.FileBytes; string destUrl = spdl.RootFolder.Url + "/" + fileName + fileExtension; SPFile destFile = spdl.RootFolder.Files.Add(destUrl, fileBytes, true); destFile.Update(); myWeb.AllowUnsafeUpdates = false; mySite.AllowUnsafeUpdates = false; destFile.Approve(""); lblMostrarImagen.Visible = true; lblValorImagen.Text = "../" + destUrl; lblMostrarImagen.Text = "<img src=\"" + lblValorImagen.Text + "\" height=\"170px\" width=\"250px\" />"; } } });
La parte donde intento aprobar o publicar es:
destFile.Approve("");
He probado poniendo .Publish también, y poniendo ambos en varias partes diferentes dle código sin obtener el resultado deseado.
Estaré muy agradecido a quien pueda ayudarme, gracias de antemano