Mayusculas y Minisculas

Te comento que estoy en la fase final del proyecto y me ha salido una increíble duda y no se en que tanto se llegue a convertir en problema
resulta que tengo una aplicación en asp.net y estoy manejando base de datos sql server 2005
la aplicación la manejo con el código visual basic.net
entonces...
Resulta que mi aplicación tiene una página llamada login en la cual el usuario se regitra
en mi base de datos tengo una tabla llamada usuario con dos campos, nom_rol y cla_rol
sus correspondientes nombre del rol ya sea admin o usuario y clave del rol y aquí en donde va el problema
si mi clave para el rol de administrador es AAA cuando voy a la aplicación muy bn pasa obviamente es el código
pero si dígito aaa también me deja pasar.
Viene la gran pregunta y el gran inconveniente, como lo hago sensible a mayúsculas y minúsculas
* es un caracter que debo incluir para que se vuelva sensible
* debo crear un sistema que sea sensible a mayusculas y minusculas
* eso se hace desde asp.net o se hace desde sql, se hace con alguna propiedad
* como se hace.
Bueno experto muchsisisismas gracias por tu respuesta, siempre me ayudan mucho y me hacen ver la luz
saludos.

1 respuesta

Respuesta
1
Efectivamente cuando instalas Sql server te pregunta que si quieres que sea case sensitive o no, cualquiera de las dos opciones es buena, te doy dos sugerencias:
1.- La query para hacer la comparación de password y user apliques el collation case sencitive,
If exists (SELECT user FROM TuTAbla WHERE username = @username COLLATE  SQL_Latin1_General_CP1_CS_AS  AND Password = @password COLLATE SQL_Latin1_General_CP1_CS_AS )
Esta comparación la adaptas a donde atenticas tu usuario.
2.- Aplicar este collation para la columna de la tabla donde están tus datos.
1) Si tienes llave primaria primero tienes que eliminar tu constraint de la llave primaria:
Alter Table Tutabla DROP CONSTRAINT Primary key ConstraintName
2) Cambiar el collation de la columna
Alter Table TuTabla Alter Column ColumnName datatype COLLATE SQL_Latin1_General_CP1_CS_AS NOT NULL
3) Y por ultimo volver a crear tu llave primaria.
Alter Table TuTabla ADD CONSTRAINT Primary key ConstraintN PRIMARY KEY(ColumnName)
Esto hara que tus columnas que indicaste sean case sensitive.
Para ver los Callations de tu Servidor puedes utilizar esta consulta:
Select * FROM ::fn_helpcollations()
Y para mostrar el Colletion que tiene tu Bd por Defalut usa esta consulta:
Select DATABASEPROPERTYEX('DatabaseName', 'Collation') AS Collation.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas