Avatar billede mosquito Nybegynder
09. oktober 2005 - 17:18 Der er 6 kommentarer og
1 løsning

Databasekald der returnerer TRUE hvis et udtryk er sandt

Jeg har tænkt mig at lave en login Form i C#, der gør brug af en ms SQL Server.

Formen gør brug af username og password, og såfremt begge er identiske med en af rækkerne i databasen, returneres TRUE.

Jeg ønsker ikke at password valideres i koden, men nede i databasen, hvis det er muligt. Da password'et ikke har anden anvendelse i den øvrige kode, ser jeg dette som en optimal løsning.

Er det muligt? og i såfald, hvordan?
Avatar billede arne_v Ekspert
09. oktober 2005 - 17:29 #1
XxxxCommand chk = new XxxxCommand("SELECT COUNT(*) FROM usertabel WHERE username = '" + un + "' AND password = '" + pw + "'", con);
int n = (int)chk.ExecuteScalar();
if(n > 0)
{
...
}
else
{
...
}

måske
Avatar billede arne_v Ekspert
09. oktober 2005 - 17:30 #2
og ret det så lige til at bruge parameters så du er beskyttet mod SQL injection

:-)
Avatar billede arne_v Ekspert
09. oktober 2005 - 17:30 #3
Xxxx = Sql

for SQLServer
Avatar billede mosquito Nybegynder
09. oktober 2005 - 17:44 #4
takker for hjælpen.. det var lige det jeg havde brug for. Vær venlig at kaste et svar.
Avatar billede arne_v Ekspert
09. oktober 2005 - 17:46 #5
kommer her
Avatar billede ldanielsen Nybegynder
10. oktober 2005 - 09:24 #6
Hvis du vil have at password'et sammenlignes case sensitive, kan du gemme det i et varbinary felt, og så convert'e det der forsøges login med til varbinary inden der sammenlignes:

Sæt password eksempel:
UPDATE userTable SET binPwd = CONVERT(varbinary(50), 'dettErmitPassWord') WHERE ID = 55

Sammenlign:
'SELECT COUNT(*) FROM usertabel WHERE username = '" + un + "' AND CONVERT(varchar(50), password) = '" + pw + "'"
Avatar billede mosquito Nybegynder
10. oktober 2005 - 16:56 #7
Idanielsen < Det var jeg slet ikke klar over. Tak for den information.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester