Zeki AKDOĞAN - Kişisel Web Sitesi Ana Sayfa | RSS RSS | İletişim

Güvenlik kodu oluşturma


Genellikle üyekayit sayfalarinda kullanilan güvenlik kodu uygulamasini verecegim kod ile kolayca kullanabilirsiniz.

Bunun için resimuretici.aspx adinda bir sayfa açin, html kismina hiçbirsey yazmaya gerek yok, codebehind kismina asagidaki kodlari yapistirin..

Imports System.Drawing.Imaging
Imports System.Drawing
Partial Class Resimuretici
    Inherits System.Web.UI.Page
    Private Function SifreUret() As String
        Dim karakterler As Char() = {"A"c, "B"c, "C"c, "D"c, "F"c, "G"c, "H"c, "M"c, "R"c, "T"c, "V"c, "X"c, "Y"c, "Z"c, "R"c, "W"c, "S"c, "1"c, "2"c, "0"c, "3"c, "4"c, "5"c, "6"c, "7"c, "8"c, "9"c}
        Dim sifre As String = ""
        Dim rnd As Random = New Random
        Dim i As Integer = 0
        While i < 6
            Dim randomindex As Integer = rnd.Next(0, karakterler.Length - 1)
            Dim secilenchar As Char = karakterler(randomindex)
            sifre += secilenchar.ToString
            System.Math.Min(System.Threading.Interlocked.Increment(i), i - 1)
        End While
        Return sifre
    End Function


    Private Function ArkaPlanRengi() As Color
        Dim renkler As Color() = {Color.Red, Color.Pink, Color.Yellow, Color.Green, Color.Blue, Color.BlanchedAlmond}
        Dim rnd As Random = New Random
        Return renkler(rnd.Next(0, renkler.Length - 1))
    End Function

    Private Sub ResimUret()
        Dim password As String = SifreUret
        Dim bmp As Bitmap = New Bitmap(110, 35)
        Dim g As Graphics = Graphics.FromImage(bmp)
        Dim mybrush As SolidBrush = New SolidBrush(ArkaPlanRengi)
        g.FillRectangle(mybrush, 0, 0, bmp.Width, bmp.Height)
        Dim rnd As Random = New Random
        Dim karakterdizisi As Char() = password.ToCharArray
        Dim sayac As Integer = 0
        For Each ch As Char In karakterdizisi
            Dim f As Font = New Font("verdana", 16, GraphicsUnit.Pixel)
            Dim myfontbrush As SolidBrush = New SolidBrush(Color.Black)
            Dim x As Integer = 5
            Dim newX As Single = sayac * f.Size + x
            Dim offset As Integer = rnd.Next(0, 14)
            Dim p As PointF = New PointF(newX, offset)
            g.DrawString(ch.ToString, f, myfontbrush, p)
            System.Math.Min(System.Threading.Interlocked.Increment(sayac), sayac - 1)
        Next
        Session("password") = password
        bmp.Save(Response.OutputStream, ImageFormat.Gif)
    End Sub

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        ResimUret()
    End Sub
End Class

Daha sonra üyekayit sayfamiza bir Image kontrolü ekleyip src kismina resimuretici.aspx sayfasini yazmamiz yeterli...

<asp:Image ID="Image1" runat="server" ImageUrl="ResimUretici.aspx" />

Yazılım | 0 Yorum | 01.03.2008 09:54:10
Etiketler: Etiket Eklenmemiş


YORUMLAR YORUM EKLE
Ana Sayfa | RSS | İletişim
Zeki AKDOĞAN 2009 © Hiçbir hakkı saklı değildir.