Computer Games Forum
 

Go Back   Computer Games Forum > Tech > The Workshop > Limbaje de programare

Notices

Căutare produse PC Garage: Şterge căutarea

Reply
 
LinkBack Thread Tools
Old 17-04-2008, 14:59   #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!
 
mAdTYzz is offline    Reply With Quote
Old 17-04-2008, 15:44   #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?
 
Smiley is offline    Reply With Quote
Old 17-04-2008, 22:30   #3 (permalink)
Registered User
 
Join Date: Jun 2005
mersi de raspuns, am aflat pe parcurs de metoda asta. i got the point la faza cu selectul, mersi pt sugestie. oricum incerc sa il optimizez cand va fi gata deoarece vreau sa il fac sa mearga. mersi inca odata.
 
mAdTYzz is offline    Reply With Quote
Old 21-04-2008, 11:15   #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 !?
 
psycho too is offline    Reply With Quote
Old 21-04-2008, 13:33   #5 (permalink)
Registered User
 
KLAMATH's Avatar
 
Join Date: Oct 2000
Location: Bucuresti
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
 
KLAMATH is offline    Reply With Quote
Old 22-04-2008, 12:00   #6 (permalink)
Registered User
 
Join Date: May 2001
Location: nowhere
Quote:
Originally Posted by KLAMATH View Post
@psycho : e aplicatie windows.
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 !?
 
psycho too is offline    Reply With Quote
Old 25-04-2008, 11:52   #7 (permalink)
Registered User
 
KLAMATH's Avatar
 
Join Date: Oct 2000
Location: Bucuresti
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
 
KLAMATH is offline    Reply With Quote
Advertisment
Reply

  Computer Games Forum > Tech > The Workshop > Limbaje de programare

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump


All times are GMT +2. The time now is 06:54.


Advertisement System V2.5 By   Branden
This site is copyrighted ©1997 - 2008, Computer Games Online SRL