X

Multi User Login Page in ASP.NET with C# + MS SQL Database with Session Variable

In this tutorial on dynamic web application development, we will learn how to create a user login page in ASP.NET. We will create the admin login page and member login page. We will also perform database connectivity. We will use MS SQL database to store user data. On the login page we will take username and password and check if those credentials exist in the database. If they exist, then we will give a positive prompt else an error. We will use C# programming with ASP.NET to perform DB connectivity for login user. Once a user logs in, we will create Session variable to keep a track of the logged in user & his type. For member we will set role =”user” and for admin we will set role =”admin”.

We will then check this role on the master page load event and depending on the role we will enable and disable the appropriate links.

Watch the video tutorial at the end of this video to understand more about this tutorial. Use the code given below for this page.

Download all Images for this project – CLICK HERE

Site1.Master code –
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site1.master.cs" Inherits="WebApplication3.Site1" %>
<!DOCTYPE html>
<html>
   <head runat="server">
      <title></title>
      <%--bootstrap css--%>
      <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" />
      <%--datatables css--%>
      <link href="datatables/css/jquery.dataTables.min.css" rel="stylesheet" />
      <%--fontawesome css--%>
      <link href="fontawesome/css/all.css" rel="stylesheet" />
      <%--our custom css--%>
      <link href="css/customstylesheet.css" rel="stylesheet" />
      <%--jquery--%>
      <script src="bootstrap/js/jquery-3.3.1.slim.min.js"></script>
      <%--popper js--%>
      <script src="bootstrap/js/popper.min.js"></script>
      <%--bootstrap js--%>
      <script src="bootstrap/js/bootstrap.min.js"></script>
      <asp:ContentPlaceHolder ID="head" runat="server">
      </asp:ContentPlaceHolder>
   </head>
   <body>
      <form id="form1" runat="server">
         <div>
            <nav class="navbar navbar-expand-lg navbar-light">
               <a class="navbar-brand" href="#">
               <img src="imgs/books.png" width="30" height="30" />
               E-Library
               </a>
               <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
               <span class="navbar-toggler-icon"></span>
               </button>
               <div class="collapse navbar-collapse" id="navbarSupportedContent">
                  <ul class="navbar-nav mr-auto">
                     <li class="nav-item active">
                        <a class="nav-link" href="homepage.aspx">Home</a>
                     </li>
                     <li class="nav-item active">
                        <a class="nav-link" href="#">About Us</a>
                     </li>
                     <li class="nav-item active">
                        <a class="nav-link" href="#">Terms</a>
                     </li>
                  </ul>
                  <ul class="navbar-nav">
                     <li class="nav-item active">
                        <asp:LinkButton class="nav-link" ID="LinkButton4" runat="server" OnClick="LinkButton4_Click">View Books</asp:LinkButton>
                     </li>
                     <li class="nav-item active">
                        <asp:LinkButton class="nav-link" ID="LinkButton1" runat="server" OnClick="LinkButton1_Click">User Login</asp:LinkButton>
                     </li>
                     <li class="nav-item active">
                        <asp:LinkButton class="nav-link" ID="LinkButton2" runat="server" OnClick="LinkButton2_Click">Sign Up</asp:LinkButton>
                     </li>
                     <li class="nav-item active">
                        <asp:LinkButton class="nav-link" ID="LinkButton3" runat="server" OnClick="LinkButton3_Click" Visible="False">Logout</asp:LinkButton>
                     </li>
                     <li class="nav-item active">
                        <asp:LinkButton class="nav-link" ID="LinkButton7" runat="server" OnClick="LinkButton7_Click" Visible="False">Hello user</asp:LinkButton>
                     </li>
                  </ul>
               </div>
            </nav>
         </div>
         <!-- Main Content Placeholder -->
         <div>
            <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
            </asp:ContentPlaceHolder>
         </div>
         <!-- Main Content Placeholder -->
         <!-- Footer -->
         <footer>
            <div id="footer1" class="container-fluid">
               <div class="row">
                  <div class="col-xs-12 col-sm-12 col-md-12 text-center">
                     <p>
                        <asp:LinkButton class="footerlinks" ID="LinkButton6" runat="server" OnClick="LinkButton6_Click">Admin Login</asp:LinkButton>
                        &nbsp;
                        <asp:LinkButton class="footerlinks" ID="LinkButton11" runat="server" OnClick="LinkButton11_Click" Visible="False">Author Management</asp:LinkButton>
                        &nbsp;
                        <asp:LinkButton class="footerlinks" ID="LinkButton12" runat="server" OnClick="LinkButton12_Click" Visible="False">Publisher Management</asp:LinkButton>
                        &nbsp;
                        <asp:LinkButton class="footerlinks" ID="LinkButton8" runat="server" OnClick="LinkButton8_Click" Visible="False">Book Inventory</asp:LinkButton>
                        &nbsp;
                        <asp:LinkButton class="footerlinks" ID="LinkButton9" runat="server" OnClick="LinkButton9_Click" Visible="False">Book Issuing</asp:LinkButton>
                        &nbsp;
                        <asp:LinkButton class="footerlinks" ID="LinkButton10" runat="server" OnClick="LinkButton10_Click" Visible="False">Member Management</asp:LinkButton>
                     </p>
                  </div>
               </div>
            </div>
            <div id="footer2" class="container-fluid">
               <div class="row">
                  <div class="col-xs-12 col-sm-12 col-md-12 text-center">
                     <p style="color:whitesmoke">&copy All right Reversed. <a class="footerlinks" href="#" target="_blank">Simple Snippets</a></p>
                  </div>
               </div>
            </div>
         </footer>
         <!-- ./Footer -->
      </form>
   </body>
</html>
Site1.master.cs code –
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication3 {
 public partial class Site1: System.Web.UI.MasterPage {
  protected void Page_Load(object sender, EventArgs e) {
   try {
    if (Session["role"].Equals("")) {
     LinkButton1.Visible = true; // user login link button
     LinkButton2.Visible = true; // sign up link button

     LinkButton3.Visible = false; // logout link button
     LinkButton7.Visible = false; // hello user link button


     LinkButton6.Visible = true; // admin login link button
     LinkButton11.Visible = false; // author management link button
     LinkButton12.Visible = false; // publisher management link button
     LinkButton8.Visible = false; // book inventory link button
     LinkButton9.Visible = false; // book issuing link button
     LinkButton10.Visible = false; // member management link button

    } else if (Session["role"].Equals("user")) {
     LinkButton1.Visible = false; // user login link button
     LinkButton2.Visible = false; // sign up link button

     LinkButton3.Visible = true; // logout link button
     LinkButton7.Visible = true; // hello user link button
     LinkButton7.Text = "Hello " + Session["username"].ToString();


     LinkButton6.Visible = true; // admin login link button
     LinkButton11.Visible = false; // author management link button
     LinkButton12.Visible = false; // publisher management link button
     LinkButton8.Visible = false; // book inventory link button
     LinkButton9.Visible = false; // book issuing link button
    } else if (Session["role"].Equals("admin")) {
     LinkButton1.Visible = false; // user login link button
     LinkButton2.Visible = false; // sign up link button

     LinkButton3.Visible = true; // logout link button
     LinkButton7.Visible = true; // hello user link button
     LinkButton7.Text = "Hello Admin";


     LinkButton6.Visible = false; // admin login link button
     LinkButton11.Visible = true; // author management link button
     LinkButton12.Visible = true; // publisher management link button
     LinkButton8.Visible = true; // book inventory link button
     LinkButton9.Visible = true; // book issuing link button
    }
   } catch (Exception ex) {

   }
  }

  protected void LinkButton6_Click(object sender, EventArgs e) {
   Response.Redirect("adminlogin.aspx");
  }

  protected void LinkButton11_Click(object sender, EventArgs e) {
   Response.Redirect("adminauthormanagement.aspx");
  }

  protected void LinkButton12_Click(object sender, EventArgs e) {
   Response.Redirect("adminpublishermanagement.aspx");
  }

  protected void LinkButton8_Click(object sender, EventArgs e) {
   Response.Redirect("adminbookinventory.aspx");
  }

  protected void LinkButton9_Click(object sender, EventArgs e) {
   Response.Redirect("adminbookissuing.aspx");
  }

  protected void LinkButton10_Click(object sender, EventArgs e) {
   Response.Redirect("adminmembermanagement.aspx");
  }

  protected void LinkButton4_Click(object sender, EventArgs e) {
   Response.Redirect("viewbooks.aspx");
  }

  protected void LinkButton1_Click(object sender, EventArgs e) {
   Response.Redirect("userlogin.aspx");
  }

  protected void LinkButton2_Click(object sender, EventArgs e) {
   Response.Redirect("usersignup.aspx");
  }

  //logout button
  protected void LinkButton3_Click(object sender, EventArgs e) {
   Session["username"] = "";
   Session["fullname"] = "";
   Session["role"] = "";
   Session["status"] = "";

   LinkButton1.Visible = true; // user login link button
   LinkButton2.Visible = true; // sign up link button

   LinkButton3.Visible = false; // logout link button
   LinkButton7.Visible = false; // hello user link button


   LinkButton6.Visible = true; // admin login link button
   LinkButton11.Visible = false; // author management link button
   LinkButton12.Visible = false; // publisher management link button
   LinkButton8.Visible = false; // book inventory link button
   LinkButton9.Visible = false; // book issuing link button
   LinkButton10.Visible = false; // member management link button
  }

  // view profile
  protected void LinkButton7_Click(object sender, EventArgs e) {

  }
 }
}
userlogin.aspx code –
<%@ Page Title="" Language="C#" MasterPageFile="~/Site1.Master" AutoEventWireup="true" CodeBehind="userlogin.aspx.cs" Inherits="WebApplication3.userlogin" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"></asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
   <div class="container">
      <div class="row">
         <div class="col-md-6 mx-auto">
            <div class="card">
               <div class="card-body">
                  <div class="row">
                     <div class="col">
                        <center>
                           <img width="150px" src="imgs/generaluser.png"/>
                        </center>
                     </div>
                  </div>
                  <div class="row">
                     <div class="col">
                        <center>
                           <h3>Member Login</h3>
                        </center>
                     </div>
                  </div>
                  <div class="row">
                     <div class="col">
                        <hr>
                     </div>
                  </div>
                  <div class="row">
                     <div class="col">
                        <label>Member ID</label>
                        <div class="form-group">
                           <asp:TextBox CssClass="form-control" ID="TextBox1" runat="server" placeholder="Member ID"></asp:TextBox>
                        </div>
                        <label>Password</label>
                        <div class="form-group">
                           <asp:TextBox CssClass="form-control" ID="TextBox2" runat="server" placeholder="Password" TextMode="Password"></asp:TextBox>
                        </div>
                        <div class="form-group">
                           <asp:Button class="btn btn-success btn-block btn-lg" ID="Button1" runat="server" Text="Login" OnClick="Button1_Click" />
                        </div>
                        <div class="form-group">
                           <a href="usersignup.aspx"><input class="btn btn-info btn-block btn-lg" id="Button2" type="button" value="Sign Up" /></a>
                        </div>
                     </div>
                  </div>
               </div>
            </div>
            <a href="homepage.aspx"><< Back to Home</a><br><br>
         </div>
      </div>
   </div>
</asp:Content>
userlogin.aspx.cs code –
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication3 {

 public partial class userlogin: System.Web.UI.Page {

  string strcon = ConfigurationManager.ConnectionStrings["con"].ConnectionString;
  protected void Page_Load(object sender, EventArgs e) {

  }

  // user login
  protected void Button1_Click(object sender, EventArgs e) {
   try {
    SqlConnection con = new SqlConnection(strcon);
    if (con.State == ConnectionState.Closed) {
     con.Open();

    }
    SqlCommand cmd = new SqlCommand("select * from member_master_table where member_id='" + TextBox1.Text.Trim() + "' AND password='" + TextBox2.Text.Trim() + "'", con);
    SqlDataReader dr = cmd.ExecuteReader();
    if (dr.HasRows) {
     while (dr.Read()) {
      Response.Write("<script>alert('" + dr.GetValue(8).ToString() + "');</script>");
     }
    } else {
     Response.Write("<script>alert('Invalid credentials');</script>");
    }

   } catch (Exception ex) {

   }
  }
 }
}
admin.aspx code –
<%@ Page Title="" Language="C#" MasterPageFile="~/Site1.Master" AutoEventWireup="true" CodeBehind="adminlogin.aspx.cs" Inherits="WebApplication3.adminlogin" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"></asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
   <div class="container">
      <div class="row">
         <div class="col-md-6 mx-auto">
            <div class="card">
               <div class="card-body">
                  <div class="row">
                     <div class="col">
                        <center>
                           <img width="150px" src="imgs/adminuser.png"/>
                        </center>
                     </div>
                  </div>
                  <div class="row">
                     <div class="col">
                        <center>
                           <h3>Admin Login</h3>
                        </center>
                     </div>
                  </div>
                  <div class="row">
                     <div class="col">
                        <hr>
                     </div>
                  </div>
                  <div class="row">
                     <div class="col">
                        <label>Admin ID</label>
                        <div class="form-group">
                           <asp:TextBox CssClass="form-control" ID="TextBox1" runat="server" placeholder="Admin ID"></asp:TextBox>
                        </div>
                        <label>Password</label>
                        <div class="form-group">
                           <asp:TextBox CssClass="form-control" ID="TextBox2" runat="server" placeholder="Password" TextMode="Password"></asp:TextBox>
                        </div>
                        <div class="form-group">
                           <asp:Button class="btn btn-success btn-block btn-lg" ID="Button1" runat="server" Text="Login" OnClick="Button1_Click" />
                        </div>
                     </div>
                  </div>
               </div>
            </div>
            <a href="homepage.aspx"><< Back to Home</a><br><br>
         </div>
      </div>
   </div>
</asp:Content>
adminlogin.aspx.cs code –
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication3
{
    public partial class adminlogin : System.Web.UI.Page
    {

        string strcon = ConfigurationManager.ConnectionStrings["con"].ConnectionString;
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        // login button click event
        protected void Button1_Click(object sender, EventArgs e)
        {
            try
            {
                SqlConnection con = new SqlConnection(strcon);
                if (con.State == ConnectionState.Closed)
                {
                    con.Open();

                }
                SqlCommand cmd = new SqlCommand("select * from admin_table where username='" + TextBox1.Text.Trim() + "' AND password='" + TextBox2.Text.Trim() + "'", con);
                SqlDataReader dr = cmd.ExecuteReader();
                if (dr.HasRows)
                {
                    while (dr.Read())
                    {
                        Response.Write("<script>alert('Successful login');</script>");
                        Session["username"] = dr.GetValue(0).ToString();
                        Session["fullname"] = dr.GetValue(2).ToString();
                        Session["role"] = "admin";
                        //Session["status"] = dr.GetValue(10).ToString();
                    }
                    Response.Redirect("homepage.aspx");
                }
                else
                {
                    Response.Write("<script>alert('Invalid credentials');</script>");
                }

            }
            catch (Exception ex)
            {
                Response.Write("<script>alert('" + ex.Message + "');</script>");
            }
        }


    }
}
YouTube video tutorial –
Tanmay Sakpal:
Related Post