Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

daniel.pod

Imagem de segurança

Recommended Posts

Ola meus caros, estou tendo um problema com um script de imagem de segurança:

 

<%@ Page Language="VB"%><%@ Import Namespace="System.Drawing" %><script language="vb" runat="server">'Este evento aconte quando a página é carregadaPrivate Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)Dim QuantCh As Integer = 5				'Número de caracteres no códigoDim i As Integer					'Controle do Loop        Dim Codigo As String = ""				'Variável que irá conter o códigoRandomize(Timer)					'Randomiza a execuçãoFor i = 1 To QuantCh					Codigo = Codigo & Chr(Int(23 * Rnd()) + 65)   	'Gera um caracter entre A-Z eNext								'adiciona à variável'Grava o código em um cookie (com criptografia)Response.Cookies("codseg")("hash") = Codigo.GetHashCode()'O cookie expira em 5 minutosResponse.Cookies("codseg").Expires = Now().AddMinutes(5)'Agora que o código aleatório está definida,'chama a função que irá criar a imagem.GerarImg(Codigo)                                          End Sub    'Função para gerar à partir de um texto        Private Sub GerarImg(ByVal texto As String)        'Sorteia uma fonte à ser usada'Se quiser usar outras fontes, altere a lista abaixoDim FontesPossiveis As String() = {"Tahoma", "Verdana"}Dim Fonte As String = FontesPossiveis(Int((FontesPossiveis.Length - 1) * Rnd()))        'Sorteia um tamanho entre 25 e 35        Dim Tamanho As Integer = Int(4 * Rnd()) + 10'Sorteia um estilo (Normal, Negrito, Italico)'Dim Estilo = Int(2 * Rnd())Dim Estilo = 1'Sorteia um fundo para a imagem. Os fundos devem estar na pasta 'fundo'Dim ArquivosFundo() As String=System.IO.Directory.GetFiles(Server.MapPath("fundo/"))Dim Fundo As String = ArquivosFundo(Int((ArquivosFundo.Length - 1) * Rnd()))        'Define um objeto de fonte, com os dados sorteadosDim oFonte As System.Drawing.Font = _New System.Drawing.Font(Fonte, Tamanho, Estilo, GraphicsUnit.Point, 0)'Cria uma imagem com base no fundo sorteadoDim ImgInicial As Drawing.Image = Drawing.Image.FromFile(Fundo)'Cria um objeto gráfico que irá conter a imagem finalDim graf As Drawing.Graphics = Graphics.FromImage(ImgInicial)'Define a qualidade da imagem criada. Usei qualidade baixa para aumentar a velocidadegraf.InterpolationMode = Drawing2D.InterpolationMode.highgraf.SmoothingMode = Drawing2D.SmoothingMode.HighSpeed'E, para piorar, rotaciona a imagem levemente, entre -10º e 10ºgraf.RotateTransform(Int(-10 + 20 * Rnd()))'Escreve o texto na imagem, em uma posição sorteada        'graf.DrawString(texto, oFonte, Brushes.Black, Int(30 * Rnd()), Int(15 * Rnd()))		graf.DrawString(texto, oFonte, Brushes.Black, Int(10 * Rnd()), Int(10 * Rnd()))'Retorna a imagem diretamente ao clienteResponse.ContentType = "image/jpeg"ImgInicial.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg)    End Sub</script>

Esse é o script da pagina q gera a imagem, tipo esta funcionando certinho e eu carrego essa pagina em um iframe. Fora

desse meu iframe eu tenho uma frame assim "Não está vendo a imagem? Clique aqui" que ao clicar no clique aqui, chama

essa pagina de gera a imagem no iframe novamente. Só q quando clico ai, ele chama a pagina denovo mais a imagem q mostra

é a mesma, eu queria que carregasse outros dados na imagem entenderam. Eu acho que ta acontecendo isso por causa dessa linha

 

Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)

Que fala pra randomizar os valores só no load, ai quando chama ela no reload acaba nao executando, acho que é isso http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif

 

Se alguem souber de uma luz ai, nao sei arrumar <_<

 

Valew

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala pessoal, esse problema acima eu resolvi, agora to com um acho q mais simples hehe

 

<%@ Page Language="VB" %><script language="VB" runat="server">    Private erro As String = ""    Private Sub cmdEnviar_Click(ByVal sender As Object, ByVal e As System.EventArgs)                'Verifica se o cookie existe        If Not Request.Cookies("codseg") Is Nothing Then            'Verifica se o código digitado é igual ao cookie,            'novamente usando a criptografia básica            If txtCodigoSeg.Text.ToUpper.GetHashCode <> Request.Cookies("codseg")("hash") Then				erro = "O código digitado é inválido. Tente novamente!"            End If        Else			erro = "O cookie não foi gravado. \nVerifique se seu navegador suporta cookies\nantes de prosseguir."		End If    End Sub</script><script language="JavaScript">	var erros = '<%=erro%>';	if (erros = "") {		parent.form1.submit();	} else {		alert("veri " + erros);	}</script>

Esse script ai é da pagina de validação do codigo, 1o problema é que onde ta "txtCodigoSeg.Text.ToUpper.GetHashCode" que dessa forma vem de um text, mais eu vo precisa traze de um request.QueryString dando um "GetHashCode" pra pode compara com o cookie, tem como? e o 2o problema é que acho q tem q chama a sub cmdEnviar_Click pra pode executa tudo e gera alguma coisa pra nao chega a variavel de erro sempre em branco la em baixo, como que chama um sub dessa nesse caso?

 

Valew http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.