none
Permisos para subir imagenes RRS feed

  • Pregunta

  • Hola a todos..

    Estoy desarrollando una pagina web "//mipagweb" en la cual tengo una pagina que sube imágenes a un servidor de tipo Windows Server.

    La carpeta donde quiero que se guarden las imágenes esta en la misma que se ubica el proyecto es decir. C:\Users\adminyo\proyectosdevisual\img.... La carpeta adminyo es la que se me comparte para administrar ya que no es mio el servidor y lo que yo quiero es pegar en ese lugar las imágenes, pero no se como darle el permiso por medio de código C# (es con lo que desarrollo la página) para que me permita guardar archivos ya que cuando guardo me sale

    Access to the path 'C:\Users\adminyo\proyectosdevisual\img...' is denied.

    Todo esto lo hago de la siguiente forma

    string filepath = "C:\\Users\\adminyo\\proyectosdevisual\\img...;
            HttpFileCollection uploadedFiles = Request.Files;
            Span1.Text = string.Empty;
    
            for (int i = 0; i < uploadedFiles.Count; i++)
            {
                HttpPostedFile userPostedFile = uploadedFiles[i];
    
                try
                {
                    if (userPostedFile.ContentLength > 0)
                    {
                        Span1.Text += "<u>Imagen #" + (i + 1) + "</u><br>";
                        Span1.Text += "Tipo de imagen: " + userPostedFile.ContentType + "<br>";
                        Span1.Text += "Tamaño de imagen: " + userPostedFile.ContentLength + "kb<br>";
                        Span1.Text += "Nombre de la imagen: " + userPostedFile.FileName + "<br>";
    
                        userPostedFile.SaveAs(filepath + "\\" + Path.GetFileName(userPostedFile.FileName));
                        Span1.Text += "Se guardó en: " + filepath + "\\" + Path.GetFileName(userPostedFile.FileName) + "<p>";
                    }
                }
                catch (Exception Ex)
                {
                    Span1.Text += "Error: <br>" + Ex.Message;
                }
            }

    La carpeta que tiene los permisos es adminyo lo que no quiero es mover los permisos de la misma, mas bien quisiera encontrar una forma de acceder a ella ya que tengo las credenciales, puesto que al entrar al servidor lo hago de forma remota con mis credenciales pero lo que quiero es poder guardar las imágenes por medio de mi aplicación. ¿Cómo poder indicar al servidor que la aplicación esta autorizada para guardar imágenes ?
    jueves, 6 de septiembre de 2018 23:46

Respuestas

  • Buenas,

    Si tienes las credenciales, lo que puedes hacer es utilizar la API de Windows para impersonacion, esto te permite ejecutar una parte de tu código con unos permisos diferentes a lo que se usan en la ejecución del programa,

    Te dejo un enlace:

    WindowsIdentity.Impersonate

    Si tienes dudas nos comentas

    Atte


    Jorge Turrado Ferrero

    Mis repositorios en GitHub
    Ranking GitHub Euskadi
    Ranking GitHub Alava

    No olvides votar mi comentario si te ha ayudado y marcarlo como respuesta si ha sido la solución, con eso ayudas a mejorar mi reputación en la comunidad y a identificar la respuesta a la gente que tenga el mismo problema.

    viernes, 7 de septiembre de 2018 7:33