[ sensei @ 15.12.2007. 00:05 ] @
|
| Zdravo.
Kako na obicnoj bazi koja se vrti na lokalnom racunaru napravim da kod njenog pokretanja otvara formu na koju se moraju ukucati username i password. Kod potvrde da to provjeri u bazi i ako je true zatvori login formu a otvori formu koju ja odredim. Ako username i pass ne odgovaraju jedno drugom da dozvoli unos jos 3-4 puta.
Napravio sam tabelu radnici u kojoj drzim podatke o radnicima i njihov username i pass koji su tipa text.
Svaka pomoc je dobro dosla.
Zahvaljujem. |
[ nidisa @ 15.12.2007. 06:00 ] @
evo jednog jednostavnijeg primera:
Ovaj kod radi na dugme "OK" u log in formi. iBrojiPokusaje je Public Integer koja prilikom Form_Load mora da bude ponistena, tj iBrojiPokusaje = 0
***code start***
Private Sub cmdOK_Click()
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim strSQL As String
Dim UserID as String
Dim Password as String
If iBrojiPokusaje>3 then
Msgbox "Unijeli ste pogresnu sifru 3 puta. Program se zatvara!",vbExclamation,"Netacan unos 3 puta"
Docmd.Quit
End IF
UserID = Me.txtUsername.Value 'vrijednost koju unosi korisnik
Password = Me.txtPassword.Value 'vrijednost koju unosi korisnik
strSQL = " SELECT * FROM tblUsers " & _
" WHERE tblUsers.Username = '" & UserID & "'" & _
" AND tblUsers.Password = '" & Password & "'"
Set db = CurrentDb()
Set rst = db.OpenRecordset(strSQL, dbOpenSnapshot)
If rst.RecordCount = 1 Then 'znaci ako postoji trazeni korisnik
docmd.close acform, Me.Name 'zatvori ovu formu
'ovdje otvaras formu po zelji
Else
iBrojiPokusaje = iBrojiPokusaje+1 'dodaj vrijednost 1 za svaki pogresan pokusaj
MsgBox "Korisnicko ime ili sifra su netacno uneseni!",vbCritical,"Pogresan unos"
Me.Visible = True
exit sub
End If
End Sub
***code end***
Nadam se da je sad malo jasnije
[ nidisa @ 15.12.2007. 06:03 ] @
Jos jednom, ovo je jedan primjer onako po sjecanju iz jednog starog projekta koji sam radio. Najbolje je da ti ovo ubacis u svoj primjer i probas. Imaj na umu da "tblUsers.Username" i "tblUsers.Password" prilagodis imenu svoje tabele i kolona u tabeli.
Pozdrav.
[ sensei @ 16.12.2007. 10:50 ] @
Hvala nidisa na ovom kodu. Ali imam problema kod sljedeceg. Da li trebam username i pass drzati u tabeli radnici gdje su i njihovi osobni podatci ili mi treba posebna tabela za to. Kada napravim formu za login i izvucem na nju polja username i pass on vec pokazuje u korisnocko ime i pass, kako to iskljuciti, dakle samo da otvori formu i da polja za unos budu prazna.
Hvala.
[ Getsbi @ 16.12.2007. 10:59 ] @
Formu u tom slučaju ne vezuješ za tabelu, već popunjavaš unbaund (nevezana) polja na formi i taj unos prosleđuješ VBA kodu na proveru. VBA kod će otvoriti ciljnu tabelu i uporediti podatke sa forme i podatke u tabeli. To u kojoj tabeli ćeš držati podatke za logovanje je stvar afiniteta. U svakom slučaju je sigurnije da su izdvojeni u zasebnu tabelu koja neće biti dostupna običnom korisniku. Metode za skrivanje su različite i u zavisnosti od ideje i intuitivnosti.
[ BrainAssassinator @ 16.12.2007. 18:52 ] @
Yamakash Sensei. :)
Na linku http://www.databasedev.co.uk/login.html imas jedan jako divan i jednostavan primjer kreiranja login forme sa popratnim prakticnim primjerom rada jedne takve forme kojeg mozes preuzeti u .zip formatu. Forma koju ces preuzeti je svakako jedan sirov "how to" primjer, ali je i jako interesantna jer je mozes nadopunjavati cime pozelis, bilo da se radi o dodavanju administratorske forme koja sluzi za dodavanje/brisanje korisnika, ili bilo cime drugim.
Licno ne preferiram pohranu passworda u tabelu radi "low level" sigurnosti, jer se jednostavnim mijenjam podataka u tabeli moze pristupiti bilo kojem korisnickom racunu. Ukoliko se radi o samo jednom passwordu, password mozes pohraniti i u okviru forme koja je namijenjena logiranju korisnika. Konvertovanjem baze u .mde password je prakticno nevidljiv.
[ sensei @ 16.12.2007. 23:08 ] @
Pogledao sam tu stranicu i primjer. Evo prikacio sam fajl sa problemom pa ako neko moze reci gdje grijesim.
Kao podrucje za unos korisnickog imena i sifre koristio sam Combo box, da li je to ispravno?
Sifre i korisnicka imena su mi u istoj tabeli kao i podatci o radnicima, jer ce radnika biti vise. Lose ili ne?
Kad unesem sifru i kliknem na login i dalje mi javlja niste unijeli sifru.
[ nidisa @ 17.12.2007. 06:03 ] @
Buraz, ja ne mogu da otvorim ovu tvoju bazu. ".accdb" ja jos nisam vidio takvu ekstenziju za MS Access bazu podataka. Sacuvaj to kao .mdb.
Sto se combo boxa tice, to je stvar ukusa i zahtjeva korisnika. Ja licno izbjegavam koristenje istog jer potencijalnom zlonamjerniku olaksavas posao. Sada treba "samo" da skonta sifru i gotova prica, a kad imas text box onda sanse da pogodi i korisnicno ime i sifru opadaju eksponencijalno.
[ Trtko @ 17.12.2007. 07:25 ] @
accdb je access 2007
a vecina nas radi do verzije acces 2003
[ sensei @ 17.12.2007. 13:32 ] @
OK promjenio sam combobox u text box i sacuvao bazu za 2003 verziju, nadam se da sada nece biti problema pri otvaranju.
Primjetit ce te dio koda koji treba da uzme i uporedi username i pass polja nisam znao iskodirati, ovo ostalo nadam se da je ok. Svaki savjet je dobro dosao.
Hvala
[ nidisa @ 17.12.2007. 14:34 ] @
Citat: accdb je access 2007
Eto svaki dan naucis nesto novo. A ovi u MS su morali nesto da promijene :-(. Kakve veze ima da li je mdb ili accdb?
Nejse, evo primjer je prikacen i kod mene radi. Napomena: da bi ovo sve funkcionisalo u VBA kodu "Tools/References" moras ukljuciti i opciju "Microsoft DAO 3.6 object library".
[Ovu poruku je menjao nidisa dana 17.12.2007. u 15:49 GMT+1]
[ BrainAssassinator @ 17.12.2007. 15:27 ] @
Skini si ovo:
http://rapidshare.de/files/38070300/2003.rar.html
Kod je vidljiv, pa mozes vidjeti i kako je sve ovo uradjeno. Tvoj primjer mi se ne svidja jer unos korisnicke sifre nije zasticen. Moze je vidjeti i iskoristiti osoba koja stoji iza operatera koji se zeli logirati, a potom je naravno moze i zloupotrijebiti. Kako bi se ovo sprijecilo, za font slova u polje gdje se unosi password stavi font "Tunga" ili nesto slicno, tako da ce druge osobe koje se nalaze u blizini operatora vidjeti samo cudne "kvadratice i motike" koje nece moci desifrovati i razumjeti. Ponovit cu jos jednom, licno ne preferiram arhiviranje passworda u tabele jer po meni takav password nema smisla posto je lako promjenljiv nakon cega se svako moze logirati na tu bazu.
Sretno sa radom. :)
[ sensei @ 17.12.2007. 17:01 ] @
Hvala vam puno. Problem sam uspjesno rijesio i radi. Razumijem tvoju brigu za sigurnost 'BrainAssassinator' ali baza je samo seminarski rad tako da vjerujem da ce i ovo biti dovoljno.
Hvala jos jednom
[ BrainAssassinator @ 17.12.2007. 19:34 ] @
Uzdravlje. :)
[ MightyMighty @ 10.07.2008. 09:27 ] @
Evo, malo da osvezim temu, a usput da ne otvaram novu.
O cemu se radi...
Potrebna mi je login forma, koja proverava password i username
Na osnovu username-a, korisniku dozvoljava da vidi odredjene forme
Recimo, imamo forme A i B
korisnik 1 i 2
Korisnik 1 vidi samo formu B
a korisnik 2 vidi A i B
hvala!!!
[ Getsbi @ 10.07.2008. 11:46 ] @
Predpostavljam da si prethodni deo odradio kao u ovoj temi. Nadalje prilikom logovanja zapamtiš username u nekoj javnoj varijabli koju deklarišeš u globalnom modulu: Global var_nazivkor As String .
Prilikom logovanja napuniš tu varijablu. Svaku formu na događaj OnLoad (Kada se obrazac učita u memoriju, ali pre nego sto se otvori) snabdeš sa VBA kodom koji proverava korisnika i ako nije adekvatan, daješ naredbu DoCmd.Close .
[ MightyMighty @ 10.07.2008. 12:21 ] @
Postoji li sansa za neki primer?
Jako sam slab sa VB-om :-/
[ Getsbi @ 10.07.2008. 12:40 ] @
Nidisa je dao u fajlu Test1.rar kako se to radi. Ako zakačiš svoj primer koji si uradio do momenta logovanja prateći ovu temu od početka, mogu da ti doradim ostatak.
Uzgred, Trtko je ovde dao takođe dobru ideju.
http://www.elitesecurity.org/t...jektovanje-tabele-za-korisnike
Inače ovo se može rešiti i nad Back-End-om, koristeći Tools, Security, User and Group Premissions...
[ Scelle @ 10.07.2008. 22:55 ] @
Mozda je malo kasno i potpuno nepotrebno, ali ipak sam odlucio da se i ja prikljucim. Evo jednog od mogucih resenja realizacije Logovanja, koja vrsi i vodjenje evidencije o vremenu prijvaljivanja i vremenu odjavljivanja korisnika. Ja, licno, volim da imam ovo u aplikaciji, posebno ako radi neki ozbiljniji posao.
Pozdrav!
Copyright (C) 2001-2026 by www.elitesecurity.org. All rights reserved.
|