Oprettelse med aktiverings email

Tags:    c#

Hej,

Jeg er ved at forsøge at lave et login system. Det er så meningen at brugeren skal få tilsendt en email med en aktiverings kode lige efter oprettelsen af brugeren.

Hvordan ville i lave det ?

Jeg havde selv tænkt noget i nærheden af det her:

Oprette en user tabel med userid, username, userpass osv..

oprette en UserActivations tabel med userid(linker til user tabel), en guid, og en ExpireDate.

Tænkte så på nu når man har oprettet brugeren i databasen, er det så muligt på en eller anden måde at returnere UserID med stored procedures ? Altså så jeg kan oprette en UserActivation lige efter brugeren er blevet oprettet ?

er det en dum måde at gøre det på, eller hvordan kunne det ellers gøres uden at jeg skal oprette et felt i user tabellen der kun bliver brugt en gang.

mvh



7 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 17 karma
Sorter efter stemmer Sorter efter dato
Jeg sidder og laver nøjagtigt det samme i asp.net / c# :-)

Jeg har lavet den simple metode, hvor jeg har et felt på brugeren med navnet Aktiv af typen bool og som default sættes til false. På brugeren er der også en OprettetDato som sættes til dagsdato når recorden oprettes i tabellen.

Når brugeren har klikket på linket i mailen sættes Aktiv feltet til True.

Når en bruger logger ind, validerer jeg på Aktiv og hvis den er False kan de ikke logge ind og de bliver spurgt om aktiveringsmailen skal gensendes.

OprettetDato kan senere bruges til, at slette brugeren hvis OprettetDato er > 90 dage og Aktiv=False



Indlæg senest redigeret d. 19.03.2012 08:38 af Bruger #9814
Sådan kan det jo også gøres :D Men så kan man vel oprette sig med en email man ikke engang har adgang til, hvis man har lidt kendskab til dit system eller tager jeg fejl ? :)



Som tilføjelse til det Brian gør, ville jeg personligt sende et hash med af en art, fx en MD5 sum af et par felter fra bruger tabellen. Så kan man tjekke om den mail adresse der sendes med (eller user ID, hvis man er mere til det) matcher hashet og på den måde sikre sig lidt bedre imod folk der forsøger at aktivere sig for en mail de ikke ejer :)

Mvh.

Kasper (TSW)



Jeg sidder og laver nøjagtigt det samme i asp.net / c# :-)

Jeg har lavet den simple metode, hvor jeg har et felt på brugeren med navnet Aktiv af typen bool og som default sættes til false. På brugeren er der også en OprettetDato som sættes til dagsdato når recorden oprettes i tabellen.

Når brugeren har klikket på linket i mailen sættes Aktiv feltet til True.

Når en bruger logger ind, validerer jeg på Aktiv og hvis den er False kan de ikke logge ind og de bliver spurgt om aktiveringsmailen skal gensendes.

OprettetDato kan senere bruges til, at slette brugeren hvis OprettetDato er > 90 dage og Aktiv=False


Brian gemmer du så også din guid i en UserActivations tabel ved siden af din user tabel ? :) For mit problem er hvordan jeg skal få UserID på brugeren returneret så jeg kan indsætte i min UserActivations tabel :)



Mit brugerid er e-mail adressen og er unik. Så mailadressen er bare sendt med i url'en.

http://minside.dk/activateuser.aspx?ActivationUser=brugermail@domæne.dk

Så jeg har slet ikke en tabel til formålet. Jeg anvender udelukkende tabellen Bruger (som den hedder hos mig).



Sådan kan det jo også gøres :D Men så kan man vel oprette sig med en email man ikke engang har adgang til, hvis man har lidt kendskab til dit system eller tager jeg fejl ? :)


Det har du helt ret i, dog skal man kende aktiverings url for at det kan lade sig gøre. Løsningen kan være en guid som du skriver, men jeg ville bare sætte guid ind som et felt på bruger og ikke i en selvstændig tabel.



God ide Kasper. Det vil jeg straks implementere her, da det som Roxiewild nævnte åbnede mine øjne for et hul i systemet :-)

Se det var jo win-win at svare på det spørgsmål :-)



t