Witajcie, próbuje stworzyć mechanizm logowania w asp.net web forms. Utworzyłem prostą bazę danych z jedną tabelą user (id, login, password, role).
Chce aby były 3 role: user, user2, admin. W zależności jaką użytkownik ma przypisaną rolę ma przekierować na konkretną stronę.
Dopiero się uczę asp.neta więc proszę o wyrozumiałość.
Login.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Configuration;
namespace WebApplication6
{
public partial class Login : System.Web.UI.Page
{
static string DatabaseConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["dbtestConnectionStrings"].ConnectionString;
SqlConnection _connection= new SqlConnection(DatabaseConnectionString);
protected void Page_Load(object sender, EventArgs e)
{
}
protected void LoginButton_Click(object sender, EventArgs e)
{
try
{
var comm = new SqlCommand("select * from user where login=@login and password=@password", _connection);
comm.Parameters.AddWithValue("@login", LoginUser.UserName);
comm.Parameters.AddWithValue("@password", LoginUser.Password);
_connection.Open();
var rd = comm.ExecuteReader();
if (rd.HasRows)
{
while (rd.Read())
{
Session["UserName"] = rd["login"].ToString();
string role = rd["role"].ToString();
if (role == "user") Response.Redirect("User/User.aspx");
else if (role == "user2") Response.Redirect("User2/User.aspx");
else Response.Redirect("Admin/Admin.aspx");
}
}
else
{
LoginUser.FailureText = "ERROR";
}
}
catch (Exception exception)
{
Response.Write(exception.StackTrace);
}
}
}
}
Rezultat:
Pozdrawiam
- 0163f5b73d.png (116 KB) - ściągnięć: 152