Red de Respuestas Legales - Derecho empresarial - C# Winform implementa la función de código de verificación de la interfaz de inicio de sesión (el código fuente se adjunta al final del artículo)

C# Winform implementa la función de código de verificación de la interfaz de inicio de sesión (el código fuente se adjunta al final del artículo)

No tengo nada que hacer. Recientemente descubrí que la función de mi código de verificación no se ha escrito. Entonces escribí este artículo.

La interfaz es fea. Un cuadro de imagen, un cuadro de texto y un botón están destinados principalmente a implementar funciones en primer lugar, en caso de que sean necesarias en el futuro.

Implementar futuros diagramas de funciones.

Ingrese el texto correspondiente en el cuadro de texto y haga clic en Aceptar para confirmar. La hora correcta se muestra en la figura.

Si la verificación falla, no aparecerá ningún mensaje y el código de verificación se actualizará directamente. Por supuesto, cuando necesite usarlo, simplemente siga la lógica empresarial. Este es relativamente simple.

Primero, utilice una función aleatoria para generar una cadena de código de verificación.

Segundo: dibuja la cuerda en el cuadro de imagen.

3. Haz clic en la imagen para actualizar el código de verificación.

El cuarto código de verificación no distingue entre mayúsculas y minúsculas.

O distingue entre mayúsculas y minúsculas.

Completado en este momento

Código fuente:

Usar el sistema;

Usar el sistema. recolectar. Genérico;

Uso del sistema. Modelo de componentes;

Utilizar el sistema. Datos;

Utilizar el sistema. Dibujo;

Usa el sistema. Linq

Usa el sistema. Texto;

Usa el sistema. Windows . Forms

Espacio de nombres suijima

{

Clase parcial pública Formulario 1: Formulario

{

Público formulario 1()

{

inicializar componente();

}

//La longitud del código de verificación

private const int iveriycodelength = 6;

//Código de verificación

Cadena privada strVerifyCode =

//Variable temporal para hacer coincidir caracteres

cadena strTemp =

Vacío privado btnUpdate_Click(Remitente del objeto, EventArgs e)

{

UpdateVerifyCode();

}

Private void Form1_Load(Remitente del objeto, EventArgs e)

{

UpdateVerifyCode();

}

//Actualizar código de verificación

Private void UpdateVerifyCode()

{

strVerifyCode = CreateRandomCode(iVerifyCodeLength);

if( strVerifyCode== " ")

{

Retorno;

}

strTemp = strVerifyCode

crear imagen (strVerifyCode);

}

//Generar cadena de código de verificación

Cadena privada CreateRandomCode(int iLength)

{

int rand

Código de carácter;

cadena randomCode = Cadena. Vacío;

//Generar un código de verificación de cierta longitud

System. Aleatorio Aleatorio = new Aleatorio();

for(int I = 0; i & ltiLengthi++)

{

rand = aleatorio. next();

if (rand % 3 == 0)

{

código =(char)(' A '+(char)(rand % 26));

}

Otros

{

código =(char)(' 0 '+(char)( rand % 10));

}

randomCode += código.

ToString();

}

Devolver código aleatorio

}

///?Crear una imagen de código de verificación

Private void CreateImage(String strVerifyCode)

{

Probar

{

int iRandAngle = 45 // Ángulo de rotación aleatorio

int IMAP width = (int) (strVerifyCode. length * 21);

Mapa de bits = nuevo mapa de bits (iMapWidth, 28 //Crear fondo de imagen

< p); >grafgraf=graffico. DeImagen(mapa);

Gráfico. Transparent(color.Alice blue); //Borra la imagen y rellena el fondo.

Gráficos. DrawRectangle(new Pen(Color. Black, 0), 0, 0, Map. Width - 1, Map. Height - 1 //Dibuja el borde

Gráfico. Modo de suavizado = Sistema. dibujo .dibujo 2d .antialias; //Modo

Random rand = new Random();

//Generación de ruido de fondo

Pluma negra = new pen(color.lightgrey,0);

for(int i = 0;i<50;i++)

{

int x = azul especial. next(0,map.width);

int y = rand. next(0,map.height);

Gráfico. DrawRectangle(blackPen, x, y, 1, 1);

}

//La rotación del código de verificación evita el reconocimiento automático.

char[] caracteres = strVerifyCode. ToCharArray(); //Descompone la cadena en una matriz de un solo carácter

//Espaciado de texto

formato de cadena = nuevo formato de cadena(banderas de formato de cadena.NoClip);

Formato. alineación = StringAlignment. Centrado;

Formato. LineAlignment = StringAlignment centrado;

//Definir color

Color[] c = { Color. Negro, color. Rojo, color. Color azul oscuro. Verde,

color. Naranja, color. Marrón, color. Color cian oscuro. Purple};

//Definir fuente

String [] font = {"verdana","Microsoft sans serif","Comic sans ms","Arial","Song Ti " };

for(int i = 0; i<char.length;i++)

{

int cindex = rand. Siguiente(7);

int findex = rand. Siguiente (5); Fuente f = nuevo sistema. Drawing.Font(Font[findex], 13, system. dibujo. estilo de fuente. negrita); //Estilo de fuente (el parámetro 2 es el tamaño de fuente)

Pincel b = nuevo sistema. dibujo pincel sólido (c[cindex]);

Punto punto = nuevo punto(16, 16);

Ángulo de flotación = rand. Next(-iRandAngle, iRandAngle); //Ángulo de rotación

Gráfico. TranslateTransform(point. x point. y); //Mueve el cursor a la posición especificada.

Gráficos. Transformación de rotación (ángulo);

Gráfico. PullString(chars[i].ToString(), f, b, 1, 1, formato

Gráfico. RotateTransform(-Angle); //Girar hacia atrás

Gráfico. TranslateTransform(2,-dot.y); //Mueve el cursor a la posición especificada.

}

cuadrodeimagen1. Imagen = mapa;

}

catch (excepción de parámetro)

{

MessageBox. Show("Se produjo un error al crear la imagen.

");

}

}

Botón de anulación privada1_Click(Remitente del objeto, EventArgs e)

{

//Verificar caso

char[] ch1 = textBox1. ToCharArray();

char[] ch2 = strTemp.

int nCount = 0;

for(int I = 0;i<strTemp.length;i++)

{

if((ch 1[ I]>;= ' a ' & amp& ampch 1[I]& lt;= ' z ')| Z '))

{

if(ch 1[I]-32 = = CH2[I]| | canal 1[I]+32 = = CH2[I])

{

ncount++;

}

}

Otros

{

if (ch1[i]==ch2[i])

{

ncount++;

}

}

}

if (nCount==strTemp. length)

{

MessageBox("Verificación aprobada"). ;

}

Otro

{

UpdateVerifyCode();

Cuadro de texto 1. /p>

}

///El caso no se puede verificar

//if(textBox1.Text==strTemp)

// {

// MessageBox.Show("Verificación aprobada");

//}

//De lo contrario

//{

//UpdateVerifyCode();

// textBox1.

Texto =

//}

}

///<Resumen>

///Evento de clic en imagen

///& lt;/summary & gt;

///& lt;nombre del parámetro = "remitente" & gt& lt/param & gt;

// /<param name = "e"></param>

Imagen vacía privadaBox1_Click(Remitente del objeto, EventArgs e)

{

UpdateVerifyCode();

}

}

}