Usuário com melhor resposta
Acesso a imagens apenas via codebehind, bloqueando demais canais.

Pergunta
-
Olá pessoal,
Quero que as imagens sejam mostradas apenas se chamadas via codebehind, não permitindo que sejam visualizadas se chamadas de outro local.
Por exemplo, se o usuário acessar a página xyz.aspx que contém o código abaixo vai mostrar a imagem normalmente:
ImagemTeste.ImageUrl = "~/Imagens/imagemteste.gif";Porém, se tentar acessar a imagem digitando a url no browser (www.abc.com.br/imagens/imagemteste.gif) gere erro ou pelo menos não retorne a imagem.
Alguém sabe como fazer?
O mais próximo que consegui foi implementar um httphandler e um httpmodule com urlreferrer.
Porém, diz que urlreferrer não é muito confiável pois algums browsers apagam essa info do header.Valeu
Respostas
-
Cara,
http://social.msdn.microsoft.com/forums/pt-BR/webgeralpt/thread/ad4a07c4-e18b-442b-8749-d6a50b16d38b
Atenciosamente, Samuel dos Anjos
- Sugerido como Resposta Samuel Rodrigues dos Anjos terça-feira, 26 de março de 2013 21:40
- Marcado como Resposta Felipo Gonçalves quarta-feira, 27 de março de 2013 13:49
Todas as Respostas
-
Cara,
Você quer uma solução mais simples, salve as suas imagens no banco de dados e não precisará ter mais diretório físico para controlar isso eliminando o seu problema também.
Atenciosamente, Samuel dos Anjos
- Sugerido como Resposta Samuel Rodrigues dos Anjos terça-feira, 26 de março de 2013 20:21
-
-
Cara,
http://social.msdn.microsoft.com/forums/pt-BR/webgeralpt/thread/ad4a07c4-e18b-442b-8749-d6a50b16d38b
Atenciosamente, Samuel dos Anjos
- Sugerido como Resposta Samuel Rodrigues dos Anjos terça-feira, 26 de março de 2013 21:40
- Marcado como Resposta Felipo Gonçalves quarta-feira, 27 de março de 2013 13:49
-
O que tenho é um sistema web com diversos usuários autenticados e um diretório onde constam as imagens.
Cada usuário deve poder visualizar apenas as imagens que tem permissão, não todas.
A questão é que depois de autenticado, se um usuário digitar a url da imagem no browser(www.abc.com.br/imagens/imagemteste.gif), consegue acessar até mesma aquelas que não tem permissão.
Tem alguma forma de implementar essa segurança que não seja colocando as imagens no banco de dados?
São diversos novos usuários e imagens entrando no sistema constantemente.Obrigado.
- Sugerido como Resposta Samuel Rodrigues dos Anjos quinta-feira, 28 de março de 2013 18:08
- Não Sugerido como Resposta Samuel Rodrigues dos Anjos quinta-feira, 28 de março de 2013 18:08
-
Cara,
Por se tratar de um único diretório com diversas imagens que nem todos podem ter as mesmas permissões para determinadas imagens, se realmente não for trabalhar com o banco de dados que acho que seria a forma mais ideal e fácil de se fazer isso a sua resposta é:
Active Directory
Essa é a única forma de gerenciar o que cada usuário pode ver ou não com permissões específicas para cada arquivo de imagem.
http://www.linhadecodigo.com.br/artigo/2422/o-que-e-o-active-directory.aspx
http://www.linhadecodigo.com.br/artigo/3006/conceder-permissoes-para-usuario-restrito-em-servicos-do-windows.aspx
http://msdn.microsoft.com/pt-br/library/vstudio/as2f1fez.aspx
http://msdn.microsoft.com/pt-br/library/system.web.security.authorizationstoreroleprovider.aspx
Atenciosamente, Samuel dos Anjos
- Sugerido como Resposta Samuel Rodrigues dos Anjos quinta-feira, 28 de março de 2013 18:16
-