none
Acesso negado à o seguinte path.... RRS feed

  • Pergunta

  • Seguinte, Tenho uma aplicação web no servidor de homologação que trabalha com o windows authentication, quando desejo baixar um arquivo em específico, o aplicativo vai no banco de dados, gera os dados que eu quero, depois com os dados ele cria um arquivo txt e tenta salvar no path 'x'. O problema é que quando chega nessa hora ele está gerando o seguinte erro: Acess to the path 'x' is denied. Esse erro é apresentado para o usuário A, porém para o usuário B não.

    Como posso resolver esse problema sem precisar ficar dando permissão na pasta para todo usuário que precise mexer nesse aplicativo? 

    quinta-feira, 22 de dezembro de 2011 19:10

Respostas

  • Vinicius, bom dia. Neste caso, acho que você não precisa escrever o arquivo no disco do server. Transforme o arquivo no tipo byte[] e passe-o como parâmetro no método de exemplo abaixo:

    public void BaixarArquivo(byte[] btArquivo)
    {
    HttpContext.Current.Response.Clear();
                    HttpContext.Current.Response.ContentType = "TEXT/TXT";
                    HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=credenciais.txt");
                    HttpContext.Current.Response.BinaryWrite(btArquivo);
                    HttpContext.Current.Response.Flush();
                    HttpContext.Current.Response.Close();
    }

    Atenciosamente, 

    Onofre A. Juvencio Junior

    (Se a achou útil o post, por favor, marque-o como resposta)

     

    • Marcado como Resposta Vinícius Ottoni quinta-feira, 26 de janeiro de 2012 12:47
    sexta-feira, 23 de dezembro de 2011 12:51

Todas as Respostas

  • Vinicius, boa tarde. Poderia postar um trecho do código?

    Atenciosamente, 

     

    Onofre A. Juvencio Junior

    (Se a achou útil o post, por favor, marque-o como resposta)

    quinta-feira, 22 de dezembro de 2011 20:40
  • var caminho = String.Format("{0}temp\\credenciais.txt", Path.GetFullPath(AppDomain.CurrentDomain.BaseDirectory);
    
    using (StreamWriter arquivo = new StreamWriter(caminho))
    {
        foreach (var credencial in credenciais)
        {
             string linha = MontarArquivo(credencial);
    
             arquivo.WriteLine(linha);
         }
    
         arquivo.Flush();
    }
    

    Tá aí.
    sexta-feira, 23 de dezembro de 2011 11:47
  • Vinicius, bom dia. Neste caso, acho que você não precisa escrever o arquivo no disco do server. Transforme o arquivo no tipo byte[] e passe-o como parâmetro no método de exemplo abaixo:

    public void BaixarArquivo(byte[] btArquivo)
    {
    HttpContext.Current.Response.Clear();
                    HttpContext.Current.Response.ContentType = "TEXT/TXT";
                    HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=credenciais.txt");
                    HttpContext.Current.Response.BinaryWrite(btArquivo);
                    HttpContext.Current.Response.Flush();
                    HttpContext.Current.Response.Close();
    }

    Atenciosamente, 

    Onofre A. Juvencio Junior

    (Se a achou útil o post, por favor, marque-o como resposta)

     

    • Marcado como Resposta Vinícius Ottoni quinta-feira, 26 de janeiro de 2012 12:47
    sexta-feira, 23 de dezembro de 2011 12:51
  • Se o arquivo se tornar grande demais, isso não pode ser um problema não?

    Como percebi que o arquivo não iria ficar muito grande, fiz dessa forma mesmo.

    sexta-feira, 23 de dezembro de 2011 13:35