[ASP.NET ]Przekierowanie uzytkownikow bazy

0

Witam

Nie jestem dobry w te klocki i potrzebuję rady...
Muszę stworzyć stronę, do której będziemy się logować w zależnosci od zlaogowanego użytkownika zostanie on przekierowany do odpowiedniej strony tzn. Zaloguje sie Kowalski -> Pracownik.ASPX, Nowak->Dyrektor.ASPX.

Nie mam pojęcia jak to zrobić... owszem kontrolka login, podział na role, ale jak ustawić by móc wyświetlać dane strony... .

Może po prostu 2 texboxy z zewnętrznej (lokalnej) bazy pobrać wartość Haslo i Login -> porownac jesli sie bedzie zgadzalo przekierowac na wlasciwa strone?

No nie mam do konca pojecia czy to zadziala... za wszelkie rady bede bardzo wdzieczny.

0

Wykorzystaj do tego zdarzenie z kontrolki login LoggedIn. Zakladam ze jej uzywasz z tego co napisales.
Przyklad:

        protected void LoginUser_LoggedIn(object sender, EventArgs e)
        {
            if(warunek sprawdzajacy czy User jest adminem)
                Response.Redirect("Admin.aspx");
            else
               Response.Redirect("Pracownik.aspx")
        }
0

Myslalem troche nad tym i chyba i tak bez bazy danych sie nie obejdzie dlatego tez stworzylem okienko logowania sam (no troche syzyfowa robota - wiem) no i usiluje cos tam wykombinowac ale no pojawiaja sie problemy z polaczeniem sie do bazy... Wiem ze sam kod nie jest jeszcze w pelni skonczony ale.. jako tako logowanie sie otwiera, wpisuje Login, Haslo wybieram stanowisko daje "Loguj i pojawia sie komunikat:

Szczegły wyjątku: System.ArgumentException: Format ciągu inicjowania jest niezgodny ze specyfikacją, począwszy od indeksu 49.

Wiersz 44:
Wiersz 45: string conString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=E:\baza.accdb";
Wiersz 46: OleDbConnection UIG = new OleDbConnection(conString);
Wiersz 47:
Wiersz 48: UIG.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:\baza.accdb;Persist Security Info=False;";

Kod mojego programu:

Web.config:

<connectionstrings> <add name="BazaConnectionString" connectionstring="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=&quot;E:\baza.accdb&quot;" providername="System.Data.OleDb" /> </connectionstrings> DEFAULT.ASPX.CS

private bool Porownaj(string string1, string string2)
{
return String.Compare(string1, string2, true, System.Globalization.CultureInfo.InvariantCulture) == 0 ? true : false;
}

protected void Przycisk_zaloguj_Click(object sender, EventArgs e)
{
        string conString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=E:\baza.accdb";        
        OleDbConnection UIG = new OleDbConnection(conString);
        
        UIG.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:\baza.accdb;Persist Security Info=False;";
        UIG.Open();

               
        OleDbCommand cmd = new OleDbCommand("SELECT ISNULL(Login, `) AS Login, ISNULL(Haslo,`) AS Haslo, ISNULL(Stanowisko,'') AS Stanowisko FROM Pracownicy WHERE Login='" + TxtUzytkownik.Text + "' and Haslo='" + TxtHaslo.Text + "' and Stanowisko='" + DDLStanowisko.Text + "'", UIG);
        OleDbDataReader dr = cmd.ExecuteReader();    
        
        string userText = TxtUzytkownik.Text; // Przypisanie zmiennej - kontrolce textbox dot. Uzytkownika
        string passText = TxtHaslo.Text; // Przypisanie zmiennej - kontrolce textbox dot. Hasla
        string stanowiskoText = DDLStanowisko.Text; // Przypisanie zmiennej - kontrolce DropDownList dot. Stanowiska

Za wszelkie sugestie bede bardzo wdzieczny.

0

Bardzo namieszany masz ten kod.
Po pierwsze skoro w web config masz juz connection string zapisany to dlaczego z niego nie korzystasz.

    protected void Przycisk_zaloguj_Click(object sender, EventArgs e)
    {
            string conString = ConfigurationManager.ConnectionStrings["BazaConnectionString"].ConnectionString;        
            OleDbConnection UIG = new OleDbConnection(conString);

            UIG.Open();
            ...
           

Tak powinno ci sie polaczyc z baza danych zakladajac ze NIE MA innych bledow gdzies po drodze.

0

Dzieki! Faktycznie podziałało! Wprawdzie sa inne jakies bledy ale sproboje dojsc co tam jest nie tak, bo to juz bardziej z samym zapytaniem SQL. Dzieki za pomoc

1 użytkowników online, w tym zalogowanych: 0, gości: 1