Sunday, 8 January 2017

How to create login page in asp.net mvc - using stored procedure


Video Tutorial:


Download Full Source Code:

Download here




Introduction:
 Here I will explain how to create login page in Asp.net MVC using stored procedure. In this example will create stored procedure for authentication and pass their value.
Description:
So now we start.
Step1. In first step we will create table for admin login
Create table tbl_adminlogin
(
Admin_id nvarchar(50),
[Password] nvarchar(max)
)
Step2.  Now we create stored procedure in database as fallows
Create  proc Sp_Login
@Admin_id nvarchar(50),
@password nvarchar(max),
@Isvalid bit out
as
begin
Set @Isvalid = (Select COUNT(Admin_id) from tbl_adminlogin where Admin_id=@Admin_id and [Password]=@Password)
end

Step3. Add connection string under configuration section in web.config file as fallows
<connectionStrings>
    <add name="con" connectionString="Data Source=.;Initial Catalog=test;Integrated Security=True" providerName="System.Data.SqlClient"/>
  </connectionStrings>
  <appSettings>

Step4: Now we add class file under database Access layer folder

Write fallowing code in db.cs class
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
namespace MVCLogin.database_Access_Layer
{
    public class db
    {
        SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["con"].ConnectionString);

        public int Admin_Login(string adminid, string password)
        {
            int res = 0;
            SqlCommand com = new SqlCommand("Sp_Login", con);
            com.CommandType = CommandType.StoredProcedure;
            com.Parameters.AddWithValue("@Admin_id",adminid);
            com.Parameters.AddWithValue("@password",password);
            SqlParameter oblogin = new SqlParameter();
            oblogin.ParameterName="@Isvalid";
            oblogin.SqlDbType=SqlDbType.Bit;
            oblogin.Direction = ParameterDirection.Output;
            com.Parameters.Add(oblogin);
            con.Open();
            com.ExecuteNonQuery();
            res = Convert.ToInt32(oblogin.Value);
            return res;
        }
    }
}

Step5: Now we create HomeController in Controller folder

1.  public class HomeController : Controller
2.  {
3.      public ActionResult Login()
4.      {
5.          return View();
6.      }
7.  }

Step6.  Add View for login page and write fallwoing html

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <div>
       <form method="post">
           <table>
               <tr><td>Admin ID</td><td><input name="adminid" type="text" style="width:200px" /></td></tr>
               <tr><td>Password</td><td><input name="password" type="password" style="width:200px" /></td></tr>
               <tr><td></td><td><input value="Login" type="submit" style="width:200px" /></td></tr>
           </table>
       </form>
    </div>
    @{
        if (TempData["msg"]!=null)
        {
            <script type="text/javascript">
                alert('@TempData["msg"]');
            </script>
        }
    }
</body>
</html>

Step7:  Go to Home Controller and write fallowing code in HomeController

public class HomeController : Controller
    {
        //
        // GET: /Home/
        database_Access_Layer.db dblayer = new database_Access_Layer.db();
        public ActionResult Index()
        {
            return View();
        }
        [HttpPost]
        public ActionResult Index(FormCollection fc)
        {
            int res = dblayer.Admin_Login(fc["adminid"], fc["password"]);
            if (res==1)
            {
                TempData["msg"] = "login Successfully...!";
            }
            else
      {
        TempData["msg"] = "Admin id or Password is wrong...!";
      }
            return View();
        }

    }

Output:  Run application and you will get fallowing output


No comments:

Post a Comment

Ads Inside Post