#AskMe

ការសិក្សាពីរបៀប បង្កើត Login Form ក្នុង ASP.NET MVC 5

មាតិកា

I.    សេចក្តីផ្តើម

II.   គោលបំណង

III.  តម្រូវការ

IV.  ជំហានទី១៖ បង្កើត Project

V.   ជំហានទី២៖ បង្កើត Database

VI.  ជំហានទី៣៖ បង្កើត Store procedure

VII. ជំហានទី៤៖ ការប្រើប្រាស់ Entity Framework

VIII. ជំហានទី៥៖ បង្កើត Model class

IX.  ជំហានទី៦៖ បង្កើត Controller

X.   ជំហានទី៧៖ បង្កើត View

XI.  ជំហានទី៨៖ ដំណើរការ Application

I.         សេចក្តីផ្តើម

នៅក្នុង Tutorial នេះ យើងនឹងសិក្សាពីរបៀប បង្កើត Simple Login Form ដោយប្រើប្រាស់ ASP.NET MVC ជាមួយនឹង Microsoft SQL Server។ ខាងក្រោមនេះនឹងបង្ហាញពីជំហាននីមួយៗក្នុងការ implementation កូដ។

II.        គោលបំណង

ក្រោយពីអនុវត្តន៍តាម Tutorial នេះ លោកអ្នកនឹងយល់អំពី

III.       តម្រូវការ

ដើម្បីអាចសិក្សា បានយើងត្រូវមាន

IV.      ជំហានទី១៖ បង្កើត Project

សូមចូលទៅបើកកម្មវិធី Microsoft visual studio

V.        ជំហានទី២៖ បង្កើត Database

សូមធ្វើការបង្កើត :

ងាយៗយើងគ្រាន់តែធ្វើការ Copy កូដខាងក្រោមចូលទៅក្នុង SQL Server រួចធ្វើការ execute ជាការស្រេច។

កំណត់ចំណាំ៖ ជាទូទៅ password គេមិនដែល store ជា plain text ឡើយ។ ដោយឡែកនៅក្នុងឧទាហរណ៍នេះ ខ្ញុំសូម store វា ជា plain text​សិន។

VI.         ជំហានទី៣៖ បង្កើត Store procedure

ក្រោយពីយើងបានបង្កើត database និង​ table រួចរាល់ហើយ សូមធ្វើការបង្កើត store procedure សម្រាប់ process រាល់ logic ផ្សេងៗ។ នៅក្នុង Logic ខាងក្រោមនេះគឺចង់បានន័យដូចតទៅ៖

USE [ConsumerBanking] 

    GO 

    SET ANSI_NULLS ON 

    GO 

    SET QUOTED_IDENTIFIER ON 

    GO 

    CREATE  PROCEDURE GetCBLoginInfo

        @UserName VARCHAR(20), 

        @Password varchar(20) 

    AS 

    SET NOCOUNT ON 

    Declare @Failedcount AS INT 

    SET @Failedcount = (SELECT LoginFailedCount from CBLoginInfo WHERE UserName = @UserName) 

    IF EXISTS(SELECT * FROM CBLoginInfo WHERE UserName = @UserName) 

     BEGIN 

     IF EXISTS(SELECT * FROM CBLoginInfo WHERE UserName = @UserName AND Password = @Password ) 

        SELECT ‘Success’ AS UserExists 

    ELSE 

    Update CBLoginInfo set  LoginFailedCount = @Failedcount+1  WHERE UserName = @UserName 

    Update CBLoginInfo set LastLoginDate=GETDATE()  WHERE UserName = @UserName 

     BEGIN 

    IF @Failedcount >=5 

    SELECT ‘Maximum Attempt Reached (5 times) .Your Account is locked now.’ AS UserExists 

    ELSE 

    select CONVERT(varchar(10), (SELECT LoginFailedCount from CBLoginInfo   WHERE UserName = @UserName))   AS UserFailedcount 

    END  

    END 

     ELSE 

     BEGIN  

    SELECT ‘User Does not Exists’ AS UserExists       END 

VII.         ជំហានទី៤៖ ការប្រើប្រាស់ Entity Framework

នៅត្រង់ចំនុចនេះគឺខ្ញុំសូមប្រើប្រាស់ Entity Framework ដើម្បីធ្វើការទាញយក Data ដោយប្រើប្រាស់នូវ EDMX file សម្រាប់ធ្វើការ fetch data ចេញពី database។

របៀបអនុវត្តន៍៖

VIII.         ជំហានទី៥៖ បង្កើត Model class

សូមធ្វើការបង្កើត class model មួយ ដោយ

ការបង្កើត class model នេះឡើងក្នុងគោលបំណងសម្រាប់ធ្វើការទំនាក់ទំនងរវាង view ហើយនិង controller។ បន្ថែមពីនោះទៀតយើងក៏បានដាក់នូវ basic validationទៅលើ UserName ហើយនិង Password fields ផងដែរ។ សូមកត់ចំណាំផងដែរថា ការដាក់ validation លើmodel គឺតម្រូវអោយយើងធ្វើការប្រើប្រាស់នូវ DataAnnotations។

using System.Collections.Generic;

using System.ComponentModel.DataAnnotations;

using System.Linq;

using System.Web;

namespace Login.Models

{

    public class CBUserModel

    {

        [Required(ErrorMessage = “UserName is required”)]

        public string UserName { get; set; }

        [Required(ErrorMessage = “Password is required”)]

        [DataType(DataType.Password)]

        public string Password { get; set; }

    }

}

IX.         ជំហានទី៦៖ បង្កើត Controller

សូមធ្វើការបង្កើត Controller ដោយដាក់ឈ្មោះថា “CBLogin”

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.Mvc;

namespace Login.Controllers

{

    public class CBLoginController : Controller

    {

        // GET: CBLogin

        public ActionResult Index()

        {

            return View();

        }

    }

}

// GET: CBLogin

        [HttpPost]

        public ActionResult Index(CBUserModel model)

        {

            ConsumerBankingEntities1 cbe = new ConsumerBankingEntities1();

            var s = cbe.GetCBLoginInfo(model.UserName, model.Password);

            var item = s.FirstOrDefault();

            if (item == “Success”)

            {

                return View(“UserLandingView”);

            }

            else if (item == “User Does not Exists”)

            {

                ViewBag.NotValidUser = item;

            }

            else

            {

                ViewBag.Failedcount = item;

            }

            return View(“Index”);

        }

   public ActionResult UserLandingView()

        {

            return View();

        }

X.         ជំហានទី៧៖ បង្កើត View

គោលដៅនៃការបង្កើត view សម្រាប់ធ្វើការបញ្ចូលនូវតម្លៃusername និង password ព្រមទាំង loginbutton ផងដែរ។

            XI.         ជំហានទី៨៖ ដំណើរការ Application

សូមធ្វើការ run application ខាងលើ