none
Acesso negado ao criar um arquivo RRS feed

  • Pergunta

  • Gostaria de salvar uma imagem em um determinado local

    Quando eu uso o SaveFileDialog  o código funciona

    Ex.:

        Dim sfd As New SaveFileDialog()
            sfd.Filter = "PNG files (*.PNG)|*.png|All Files (*.*)|*.*"
            Dim enc = New PngEncoder()
            If CBool(sfd.ShowDialog()) Then


                Using stream As FileStream = sfd.OpenFile

                    Dim image = Imager.ToImg(capturedImage.ImageSource)

                    enc.Encode(image, stream)
                    stream.Close()

                End Using
            End If

    Mas quando uso File.Create ele aparece o seguinte código(Imagem anexada)

    Messagem do Erro(File operation not permitted. Access to path 'C:\Users\rbjunior\Desktop\teste.png' is denied.)

    Ex.:

     Dim enc = New PngEncoder() 
            Using stream As FileStream = File.Create("C:\Users\rbjunior\Desktop\teste.png")

                Dim image = Imager.ToImg(capturedImage.ImageSource)

                enc.Encode(image, stream)
                stream.Close()

            End Using


    terça-feira, 10 de junho de 2014 16:07

Respostas

  • Isso funciona assim por questão de segurança. Em aplicações Silverlight não é permitido manipular arquivos diretamente em qualquer pasta sem a intervenção do usuário, ou seja, sua aplicação não pode salvar onde quiser. Você pode manipular arquivos sem problemas no IsolatedStorage, que é uma área reservada pelo Silverlight apenas para o seu aplicativo.

    A única forma de contornar isso é fazer sua aplicação ser executada como uma aplicação confiável (MSDN: trusted applications).

    Aplicações feitas em Silverlight 4 só terão acesso às pastas Meus Documentos, Minhas Músicas, Minhas Imagens e Meus Vídeos do usuário atual, mesmo em modo trusted (acho que o desktop também é acessível, mas não tenho certeza).

    Aplicações feitas em Silverlight 5 em modo trusted têm acesso à qualquer arquivo do computador.

    Além disso, em Silverlight 4 só é possível criar aplicações trusted em modo Out of Browser, mas em Silverlight 5 também é possível criar aplicações trusted In Browser, mas deve ser feita uma alteração no registry do computador do usuário (pode ser feito diretamente ou via Group Policy). Além disso, qualquer aplicação trusted DEVE ser assinada com um certificado digital válido emitido por uma agência certificadora (aplicações trusted não assinadas só funcionam em computadores de desenvolvimento)


    Atenciosamente,

    Kelps Leite de Sousa | MVP Silverlight
    blog: http://kelps.net
    twitter : http://twitter.com/kelps

    Não se esqueça de "marcar como resposta" o ítem que lhe ajudou.

    terça-feira, 10 de junho de 2014 20:08
    Moderador

Todas as Respostas

  • Isso funciona assim por questão de segurança. Em aplicações Silverlight não é permitido manipular arquivos diretamente em qualquer pasta sem a intervenção do usuário, ou seja, sua aplicação não pode salvar onde quiser. Você pode manipular arquivos sem problemas no IsolatedStorage, que é uma área reservada pelo Silverlight apenas para o seu aplicativo.

    A única forma de contornar isso é fazer sua aplicação ser executada como uma aplicação confiável (MSDN: trusted applications).

    Aplicações feitas em Silverlight 4 só terão acesso às pastas Meus Documentos, Minhas Músicas, Minhas Imagens e Meus Vídeos do usuário atual, mesmo em modo trusted (acho que o desktop também é acessível, mas não tenho certeza).

    Aplicações feitas em Silverlight 5 em modo trusted têm acesso à qualquer arquivo do computador.

    Além disso, em Silverlight 4 só é possível criar aplicações trusted em modo Out of Browser, mas em Silverlight 5 também é possível criar aplicações trusted In Browser, mas deve ser feita uma alteração no registry do computador do usuário (pode ser feito diretamente ou via Group Policy). Além disso, qualquer aplicação trusted DEVE ser assinada com um certificado digital válido emitido por uma agência certificadora (aplicações trusted não assinadas só funcionam em computadores de desenvolvimento)


    Atenciosamente,

    Kelps Leite de Sousa | MVP Silverlight
    blog: http://kelps.net
    twitter : http://twitter.com/kelps

    Não se esqueça de "marcar como resposta" o ítem que lhe ajudou.

    terça-feira, 10 de junho de 2014 20:08
    Moderador
  • Queria saber, como configurar o trusted In Browser  via Group Policy

    sexta-feira, 29 de agosto de 2014 00:39