pomoc, login problem u aplikaciji, MSSQL i C#

Discussion in 'Operativni sistemi, aplikacije i programiranje' started by neko, Mar 11, 2012.

  1. neko

    neko Aktivista

    Pozdrav,

    igram se s c# i pokusavam napraviti neki programcek, koji ce biti povezan s bazom podataka (MSSQL).
    Napravio sam klasu Log_in i formu Login. Forma poziva funkciju ove klase i salje podatke, koje funkcija onda poredi s bazom. taj dio radi odlicno. Ako su podaci uneseni kako treba, otvara se main forma, koja sadrzi meni i neke opcije u meniju. Ako je u pitanju administrator, onda treba ima pristup svakoj opciji u meniju, ako je u pitanju obicni korisnik, onda treba da ima samo odredjene opcije disable-ovane.
    Nemam ideju kako to uraditi, jer su u pitanju dvije forme.
    Potrebne samo ideje, kritike i savjeti, kod cu sam srediti. Ako neko pomogne, hvala. :)

    Code:
     funkcija za provjeru...
    public static Users Authentication(Users us)
    {
          var query = (from u in DMClass.dc.Users
                where u.Username == us.Username && u.Password == us.Password
                select u).FirstOrDefault();
                return query;
    }
    Code:
    Prijem podataka i slanje funkciji na provjeru, te poziv main forme.
    private void btnLogin_Click(object sender, EventArgs e)
    {
          var us = new Users();
          us.Username = txtUsername.Text;
          us.Password = txtPassword.Text;
                
          if (LogInService.Authentication(us) != null)
         {
               this.DialogResult = System.Windows.Forms.DialogResult.OK;
               var frm = new frmMain(); 
               this.Close();
          }
    }
    
     
  2. fipi

    fipi Aktivista

    Cini mi se da sam vidio u nekom postu na forumu da si fitar, pa ako jesi imas to u materijalima iz MIS-a za c# (3.godina materijali)
     
  3. neko

    neko Aktivista

    nope, nema toga u materijalima.
    dva tipa usera, obicni i admin user. admin ima opcije tipa dodavanja novih usera, dok obicni user nema. to je konkretno sto meni treba.
     
  4. fipi

    fipi Aktivista

    Nisam ono gore do kraja ni procito, pretpostavljo sam da ti treba samo login. Ja sam imo isti taj problem na 2 seminarksa i rijesio sam ga tako da napravim 2 forme, jedna za obicnog korisnika druga za admina.
    Tip korisnika sam imo u bazi ( npr admin, radnik, menadzer ) i onda samo na login formi ubacis obicni if uslov gdje provjeravas tipkorisnika, ako je admin idi na formu za admina, ako nije idi na drugu.
    Znaci moras imat tip korisnika u bazi, i samo na login formi ubacis obicni if uslov za provjeru tipa korisnika i prosljedis ih na odgovarajuće forme.
     
  5. neko

    neko Aktivista

    to je i meni odmah palo na pamet. ali ne bih da dupliram kod. mora postojati nacin da se provjeri da li je user obicni i ako jeste, samo da se odradi opcija.enable = false; ili nesto slicno kako bi se blokirao korisnik.
     
  6. selvin

    selvin Moderator

    Pa ako su forme vrlo slicne a neke funkcije treba zabraniti, onda je najlakse da pri prikazu forme ili odabiru te opcije ispitate da li je korisnik admin. Moze se i pri logovanju postaviti neka varijabla isAdmin=true, da ne moras ici u bazu i citati njegov tip. Ako je potrebno, kao sto "neko" rece da budu neke opcije disable-ovane, onda je lahko pri ucitavanju forme uraditi disable toga ako nije admin. Praviti 2 ili vise formi koje su gotovo iste je besmisleno.
     
  7. selvin

    selvin Moderator

    A tebi je problem da provjeris tip usera? Sta je tu konkretno problem? Kao sto rekoh u postu iznad, (napisao sam prije nego si postavio zadnji komentar), pri logovanju kad provjeris da su ispravni podaci, tad mozes provjeriti i je li admin i to snimit u neku varijablu. Dalje je na tebi kako ces i sta ces.
     
  8. fipi

    fipi Aktivista

    Moraces na loadu forme uzimat korisnika iz sesije ( klasa gdje drzis logovanog korisnika) i stavit if uslov (ako nije admin) button1.show = false , sad neznam ovo za button hoce li radit, ali moraces imat neku sesiju odakle ces uzet korisnikai vidit kojeg je tipa. Proguglaj malo kako se sakriva to sto hoces da sakrijes.
     
  9. Konjislav

    Konjislav Komšija

    Moze koristiti i slijedeci nacin:
    (ime komponente).enable = false umjesto
    (ime komponente).show = false.
    Prvi nacin zasivi komponentu, dok drugi Nikako ne prikazuje.
     
  10. neko

    neko Aktivista

    Hvala na odgovoru, jos nikad to nisam rijesio. Meni je problem kako mu dati komandu da zna "ako je korisnik.role==admin, prikazi opciju", "ako je korisnik.role=="user, zasivi/zatamni/sakrij opciju".

    Znaci, u login maski pozivam funkciju, koja poredi unesene parametre sa parametrima u bazi i ako se podudaraju, onda prikaze main masku, u suprotnom error. E sad, problem mi je samo prenijeti te parametre (podatke) i u main masku i baratati njima tamo.
    Ako moze makar neki slikoviti algoritam, bio bih prezahvalan.