articles

Home / DeveloperSection / Articles / Login Form in ASP.Net with C#

Login Form in ASP.Net with C#

AVADHESH PATEL31076 11-Aug-2012

Here, I’m going to describe Login web Form in ASP.Net. This article’s beauties are, it provide login for Admin and User both from single table according define role.  This demo is having proper validation and Stay login. Steps are given below:

Step 1:- Create a table and fill records

CREATE TABLE LoginAuthentication
(
      [id][varchar](50)PrimaryKey,
      [pass][varchar](50)NOTNULL,
      [role][int] NOT NULL
)

 

Login Form in ASP.Net with C#

Note:- Here role 1 means Admin Login and 0 means User Login

Step 2: Take three web pages namely “Login.aspx”, “Admin.aspx” and “User.aspx”

Step 3:- Add Connection String in web.config file

<configuration>
                <connectionStrings>
                                 <add name="dbconnection" providerName="System.Data.SqlClient"
                                    connectionString="Data Source=.;Initial Catalog=avi;User Id=avisqlserver;     password=123456"/>
                </connectionStrings>
</configuration>

 Step 4:- Login.aspx

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <style type="text/css">
        .style1
        {
            width75px;
        }
        .style2
        {
            width417px;
        }
    </style>
    <script type="text/javascript">
        window.history.forward();
        function noBack() { window.history.forward(1); }
    </script>
    <%--RequerFeildValidater--%>
    <script type="text/javascript">
        function ValidateFeild() {
            var txtId = document.getElementById("txtId").value;
            var txtPass =document.getElementById("txtPassword").value;
            if (txtId === "") {
                document.getElementById("lblId").innerHTML = "*";
                document.getElementById("lblId").title = "Enter email id";
                return false;
            }
            else {
                document.getElementById("lblId").innerHTML = "";
            }
 
            if (txtPass === "") {
                document.getElementById("lblPass").innerHTML = "*";
                document.getElementById("lblPass").title = "Enter password";
                return false;
            }
            else {
                document.getElementById("lblPass").innerHTML = "";
            }
 
            if (txtId !== "") {
                var RegExEmail =/^(?:\w+\.?)*\w+@(?:\w+\.)+\w+$/;
 
                if (!RegExEmail.test(txtId)) {
                    document.getElementById("lblEmailValid").innerHTML = "*";
                    document.getElementById("lblEmailValid").title = "Email formate incorrect";
                    return false;
                }
                else {
                    document.getElementById("lblEmailValid").innerHTML = "";
                }
            }
 
        }
    </script>
    
</head>
<body onload="noBack();" onpageshow="if (event.persisted) noBack();" onunload="">
    <form id="form1" runat="server">
    <div style="height: 426px">
        <fieldset style="width: 236px; background-image: url(images/legendback.png);" />
        <legend></legend>
        <table cellpadding="0" cellspacing="0" style="height: 197px">
            <tr style="padding: 0px;">
                <td style="border-bottom: 1px solid black; padding: 0px">
                Sign in
                </td>
                <td style="border-bottom: 1px solid black;">
                   
                </td>
            </tr>
        
            <tr>
                <td class="style1">
                    Email Id
                </td>
                <td class="style2">
                    <asp:TextBox ID="txtId" runat="server" Width="130px" meta:resourcekey="txtIdResource1" OnFocus="this.style.borderColor='blue'" OnBlur="this.style.borderColor=''" ></asp:TextBox>
                    <asp:Label ID="lblId" runat="server" ForeColor="#FF3300"></asp:Label>
                    <asp:Label ID="lblEmailValid" runat="server" ForeColor="#FF3300"></asp:Label>
                </td>
            </tr>
            <tr>
                <td class="style1">
                    <asp:Label ID="lblPassword" runat="server" Text="Password" meta:resourcekey="lblPasswordResource1"></asp:Label>
                </td>
                <td class="style2">
                    <asp:TextBox ID="txtPassword" runat="server" Width="130px" meta:resourcekey="txtPasswordResource1" OnFocus="this.style.borderColor='blue'" OnBlur="this.style.borderColor=''"
                        TextMode="Password"></asp:TextBox>
                    <asp:Label ID="lblPass" runat="server" ForeColor="#FF3300"></asp:Label>
                </td>
            </tr>
            <tr>
                <td>
                </td>
                <td class="style2">
                    <asp:Label ID="lblErrorMsg" runat="server" ForeColor="#FF3300" Visible="False" meta:resourcekey="lblErrorMsgResource1"></asp:Label>
                </td>
            </tr>
            <tr>
                <td>
                </td>
                <td>
                    <asp:CheckBox ID="chkRemember" runat="server" Text="Stay signed in" />
                </td>
            </tr>
            <tr>
                <td class="style1">
                </td>
                <td class="style2">
                    <asp:Button ID="btnLogin" runat="server" Text="Sign In" OnClientClick="return ValidateFeild(this)"
                        OnClick="btnLogin_Click1" meta:resourcekey="btnLoginResource1" />
                </td>
            </tr>
        </table>
        </fieldset>
    </div>
    </form>
</body>
</html> 

Output

Login Form in ASP.Net with C#

Step 5:- Login.aspx.cs

using System;
using System.Data;
using System.Data.SqlClient;
 
public partial class _Default : System.Web.UI.Page
{
 
    readonly string cnString = System.Configuration.ConfigurationManager.ConnectionStrings["dbconnection"].ConnectionString;
 
 
    public void login(string id, string pass)
    {
        if (id.Length > 0 && pass.Length > 0)
        {
            try
            {
                SqlConnection con = new SqlConnection(cnString);
                SqlCommand cmd = new SqlCommand(String.Format("select * from LoginAuthentication where id = '{0}'", id), con);
                if (con.State == ConnectionState.Closed)
                    con.Open();
 
                using (SqlDataReader rd = cmd.ExecuteReader())
                {
                    if (rd.Read())
                    {
                        if (rd["pass"].ToString() == pass)
                        {
                            lblErrorMsg.Visible = false;
                            if (chkRemember.Checked == true)
                            {
                                Response.Cookies["IdCookie"].Value = txtId.Text.Trim();
                                Response.Cookies["IdCookie"].Expires = DateTime.Now.AddDays(30);
                                Response.Cookies["PassCookie"].Value = txtPassword.Text.Trim();
                                Response.Cookies["PassCookie"].Expires = DateTime.Now.AddDays(30);
                            }
                            if (Convert.ToInt32(rd["role"]) == 1)
                            {
                                Session.Add("AdminSession", id);
                                Response.Redirect("Admin.aspx");
                            }
                            else
                            {
                                Session.Add("UserSession", id);
                                Response.Redirect("User.aspx");
                            }
                        }
                        else
                        {
                            lblErrorMsg.Text = "password incorrect";
                            lblErrorMsg.Visible = true;
                        }
                    }
                    else
                    {
                        lblErrorMsg.Text = "email id incorrect ";
                        lblErrorMsg.Visible = true;
                    }
                }
                if (con.State == ConnectionState.Open)
                    con.Close();
            }
            catch
            {
               
            }
        }
       
    }
 
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            if (Request.Cookies["IdCookie"] != null && Request.Cookies["PassCookie"] != null)
                 login(Request.Cookies["IdCookie"].Value, Request.Cookies["PassCookie"].Value);
        }
    }
 
    protected void btnLogin_Click1(object sender, EventArgs e)
    {
        login(txtId.Text.Trim(),txtPassword.Text.Trim());
    }
   
}

 Step 6:- Admin.aspx

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
     <script type="text/javascript">
         window.history.forward();
         function noBack() { window.history.forward(1); }
</script>
</head>
<body onload="noBack();" onpageshow="if (event.persisted) noBack();" onunload="">
    <form id="form1" runat="server">
    <div>
    Welcome Admin Panel
        <asp:LinkButton ID="LinkButton1" runat="server"
            style="float: right; margin:0px 40px 0px 0px" onclick="LinkButton1_Click">Sign Out</asp:LinkButton>
    </div>
    </form>
</body>
</html>

 Step 7:- Admin.aspx.cs

using System;
 
public partial class Admin : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Convert.ToString(Session["AdminSession"]) == "")          
            Response.Redirect("Login.aspx");
    }
    protected void LinkButton1_Click(object sender, EventArgs e)
    {
        Session.Abandon();
        Response.Cookies["IdCookie"].Value = null;
        Response.Cookies["PassCookie"].Value = null;
        Response.Redirect("Login.aspx");    
    }
}

  Step 8:- User.aspx

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script type="text/javascript">
        window.history.forward();
        function noBack() { window.history.forward(1); }
</script>
</head>
<body onload="noBack();" onpageshow="if (event.persisted) noBack();" onunload="">
    <form id="form1" runat="server">
    <div>
    Welcome User Panel
    <asp:LinkButton ID="LinkButton1" runat="server"
            style="float: right; margin:0px 40px 0px 0px" onclick="LinkButton1_Click">Sign Out</asp:LinkButton>
    </div>
    </form>
</body>
</html>

  Step 9:- User.aspx.cs

using System;
 
public partial class User : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Convert.ToString(Session["UserSession"]) == "")
            Response.Redirect("Login.aspx");
    }
    protected void LinkButton1_Click(object sender, EventArgs e)
    {
        Session.Abandon();
        Response.Cookies["IdCookie"].Value = null;
        Response.Cookies["PassCookie"].Value = null;
        Response.Redirect("Login.aspx");
       
    }
}

 Step 10:- compile the program and run the application

Note- If you not properly Sing Out web formthen, when will be open Login web


form, automatic previous Logged web form open, because cookies are set on


Admin and User web form’s Page_Load event.



Updated 18-Jul-2020
Avadhesh Kumar Patel District Project Manager - Aligarh 14 months work experience in Panchayati Raj Department Sector as District Project Manager & 12 months work experience in IT Sector as Software Engineer. :-)

Leave Comment

Comments

Liked By