![]() |
| | #1 (permalink) | ||
| Registered User Join Date: Jun 2005 | Login form in C#
Deci in cateva luni am licenta... si vreau sa fac un program de rezervare la un hotel... in mare asta e ideea. Vreau sa aibe mai multi utilizatori si fiecare utilizator sa aibe un privilegiu din 3( user level).Adica adminul sa aibe user level 1, manager 2, employee 3... and so on si in functie de user level sa deschida sau sa inchida anumite parti din formular. Toti userii vor lucra pe acelasi form doar ca vor fi anumite taburi inchise. Tot o sa am salvat in tabele dintr-o baza de date ms access. Faza e ca am probleme la login si anume ca nu stiu cum pot face sa verific campul de la coloana privilegiu ca sa pot merge mai departe si sa imi aplice restrictiile specifice user levelului.Loginul simplu username/parola l-am facut. Posetz codul sursa de la formul de login sa vedeti cum ii si pliz ajutati-ma ca problema asta mi-a mancat 2 saptamani din viata ![]() [CODE] using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.Odbc; using System.Data.OleDb; using System.Data.SqlClient; using System.Drawing; using System.Text; using System.Windows.Forms; namespace HotelReservationSoftware_V1 { public partial class frmLogin : Form { public frmLogin() { InitializeComponent(); } private void frmLogin_Load(object sender, EventArgs e) { // TODO: This line of code loads data into the 'dataDataSet.Users' table. You can move, or remove it, as needed. this.usersTableAdapter.Fill(this.dataDataSet.Users); } #region Butonul de Accept private void fadeLogin_Click(object sender, EventArgs e) { string SQL; OleDbDataReader Reader; string sConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Data.mdb;User ID= ;Password= "; OleDbConnection objConnection = new OleDbConnection(sConnect); objConnection.Open(); try { SQL = "Select * from Users where username='" + this.txtUsername.Text + "' AND password='" + this.txtPassword.Text + "';"; // Find USER ID in users table // if we find it, validate the password and set the privledge. OleDbCommand oMyCommand = new OleDbCommand(SQL, objConnection); Reader = oMyCommand.ExecuteReader(); if (this.txtPassword.Text.Length < 1 || this.txtUsername.Text.Length < 1) { MessageBox.Show("Amandoua campurile sunt obligatorii!"); this.txtUsername.Text = ""; this.txtPassword.Text = ""; return; } if (Reader.HasRows) { // Logarea este reusita MessageBox.Show("Bun Venit " + this.txtUsername.Text); this.Close(); //aici ar trebui sa vina faza cu verificatul user levelului } else { MessageBox.Show("Logare Nereusita!"); this.txtUsername.Text = ""; this.txtPassword.Text = ""; } } finally { objConnection.Close(); } } #endregion [/CODE] Asta e o parte din cod, coloana din tabel unde am privilegiul salvat se numeste Priviledge si poate lua valori intregi de 1,2 sau 3. Multumesc anticipat! | ||
|
| | #2 (permalink) | ||
| Registered User Join Date: Nov 2001 |
if (Reader.HasRows) { Reader.Read(); int Priviledge = reader.GetInt32(reader.GetOrdinal("Priviledge")); // Logarea este reusita MessageBox.Show("Bun Venit " + this.txtUsername.Text); this.Close(); //aici ar trebui sa vina faza cu verificatul user levelului } ca si sfaturi: -nu pune direct in stringul SQL input-ul userului, fara sa-l verifici; cauta pe google "SQL Injection" daca vrei sa aflii de ce ![]() -incearca sa optimizezi lucrurile pe acolo. de exemplu, tu intai te uiti in baza de date (executi selectul) si abia apoi verifici daca ala a completat sau nu cele 2 campuri obligatorii
__________________ Who forgot to close the gate? Who let me out? | ||
|
| | #4 (permalink) | ||
| Registered User Join Date: May 2001 Location: nowhere |
De ce nu folosesti Login controls din ASP.NET 2.0? Toata logica pe care tu incerci sa o simulezi e integrata in ASP.NET 2.0. Poti sa iti definesti useri, grupuri, roluri, reguli... http://aspnet.4guysfromrolla.com/articles/120705-1.aspx PS: Pentru asta vei avea nevoie de MSSQL 2000 sau MSSQL 2005, dar daca ai nevoie iti pot trimite un sample in care am folosit totul modificat pentru baza de date Access. Eu folosesc deja la doua site-uri si sunt multumit.
__________________ what's cooking here, guys !? | ||
|
| | #5 (permalink) | ||
|
sql + logica intr-un event handler = crappy code. Better check yellow fish @psycho : e aplicatie windows.
__________________ put a stake thru my heart and drag me into sunlight | |||
|
| | #6 (permalink) | ||
| Registered User Join Date: May 2001 Location: nowhere | hmm, e din cauza inertiei, am facut in ultima vreme cateva aplicatii mici in ASP.NET 2.0 pentru Intranet... [OFFTOPIC pentru KLAMATH]Te-ai certificat? A meritat? Intreb pentru ca tocmai ma pregatesc pentru un training pentru MCPD Web platit de firma unde lucrez[/OFFTOPIC]
__________________ what's cooking here, guys !? | ||
|
| | #7 (permalink) | ||
|
offtopic: am MCADul dar mai departe mi-am pierdut interesul pt certificari. Daca a meritat.....hmm....presupun ca ajuta sa ai o certificare (macar la "screeningul" initial al CVului). Insa singurul lucru care conteaza cu adevarat ramine tot experienta (si aici din pacate certificarile nu ajuta cu nimic). Cind dai examenul......multa bafta .
__________________ put a stake thru my heart and drag me into sunlight | |||
|
| Advertisment | |
![]() |
|
| Thread Tools | |
|
|