ایجاد Login با استفاده از session در MVC

چهارشنبه 22 اردیبهشت 1395

در این مقاله قصد داریم با استفاده ازsession در ASP.NET MVC نحوه لاگین به برنامه و پس از لاگین شدن هدایت به پنل کاربری را آموزش دهیم .در اینجا از تکنولوژی ADO.NET Entity Data Model استفاده میکینم.

ایجاد Login با استفاده از session در MVC

این مقاله  موارد زیر توضیح می دهد :

     نحوه  ایجاد یک پروژه ASP.NET MVC
     نحوه  اضافه کردن ADO.NET Entity Data Model
     نحوه اضافه کردن کنترلر
    نحوه  اعتبار سنجی  کاربر
    نحوه  حفظ اطلاعات کاربر در Sessions و نمایش اطلاعات کاربر در پنل کاربری

مرحله  طراحی دیتابیس

 جدول UserProfile را با استفاده از اسکریپت زیر ایجاد میکنیم.

Create Table UserProfile  
    (  
        UserId int primary key identity(1, 1),  
        UserName varchar(50),  
        Password varchar(50),  
        IsActive bit  
    )

با استفاده از اسکریپت زیر برای چند کاربر در جدول  وارد کنید.

  

    Insert into UserProfile  
    Select 'jaipal', 'jai1234', 1 Union All  
    Select 'praveen', 'praveen1234', 1 Union All  
    Select 'pruthvi', 'pruthvi1234', 1 

مرحله 1: ایجاد پروژه

از منو File  گزینه New وروی Project  کلیک کنید.

new

Visual C# را انتخاب کرده و Web را از پنل زیر آن انتخاب میکنیم.   ASP.NET MVC 4 Web Application را انتخاب و نام پروژه را MvcLoginAppDemo  میگذاریم , و روی OK  کلیک میکنیم.

project

در Project template  ،گزینه Basic را انتخاب کرده و view engine را روی Razor گذاشته و OK میکنیم.

mvc

مرحله 2 :افزودن Entity Data Model

 روی Solution Explorer پروژه  راست کلیک کرده و ADO.NET Entity Data Model را انتخاب کنید.

data model

در پنجره باز شده نامی برای مدل خود انتخاب کرده و روی Add کلیک میکنیم.

add

Generate from database  را انتخاب و روی Next کلیک میکنیم.

wizard

 روی New Connection کلیک میکنیم.

new

پس از کلیک کردن بر روی new connection ، ما باید  پروپرتی های Connection در ویزارد زیر را مشخص کنیم.

Server name

انتخاب Use SQL Server Authentication

وارد کردن User nameو  Passwordدر Textbox

تیک Save my password را بزنید

Select or enter a database name را انتخاب کرده

دیتابیس مورد نظر را انتخاب کنید

برای اطمینان از برقراری اتصال روی Test Connection کلیک کرده

سپس روی OKکلیک کنید

properties

Yes include the sensitive data in the connection string. را انتخاب کنید.

connection

در پنجره Choose your database objects ،مانند تصویر زیر  جدول مورد نظر را انتخاب میکنیم.

object

روی Finish کلیک کنید. در این مرحله موجودیت USERPROFILE ایجاد خواهد شد.

userprofile

مرحله 3: افزودن  یک Controller

در پروژه روی پوشه Controller  راست کلیک کرده  وروی  گزینه Add و Controller کلیک میکنیم.

یا از کلیدهای میانبر Ctrl + M, Ctrl + C استفاده میکنیم.

controller

مانند تصویر زیر نام کنترلر و و در قسمت Scaffolding template  گزینه Empty MVC Controller را انتخاب  و روی Add کلیک میکنیم.

add

 کدهای زیر را در HomeController وارد میکنیم.

    using System.Linq;  
    using System.Web.Mvc;  
      
    namespace MvcLoginAppDemo.Controllers  
    {  
        public class HomeController: Controller  
        {  
            public ActionResult Login()  
            {  
                return View();  
            }  
      
            [HttpPost]  
            [ValidateAntiForgeryToken]  
            public ActionResult Login(UserProfile objUser)   
            {  
                if (ModelState.IsValid)   
                {  
                    using(DB_Entities db = new DB_Entities())  
                    {  
                        var obj = db.UserProfiles.Where(a => a.UserName.Equals(objUser.UserName) && a.Password.Equals(objUser.Password)).FirstOrDefault();  
                        if (obj != null)  
                        {  
                            Session["UserID"] = obj.UserId.ToString();  
                            Session["UserName"] = obj.UserName.ToString();  
                            return RedirectToAction("UserDashBoard");  
                        }  
                    }  
                }  
                return View(objUser);  
            }  
      
            public ActionResult UserDashBoard()  
            {  
                if (Session["UserID"] != null)  
                {  
                    return View();  
                } else  
                {  
                    return RedirectToAction("Login");  
                }  
            }  
        }  
    }  

مرحله 4: ایجاد View ها

روی متد Login Action راست کلیک کرده و روی  Add View  مانند زیر کلیک میکنیم.

view

ایجاد Strongly Typed View

View Name باید هم نام متد اکشن باشد .

Razor را از قسمت view engine انتخاب میکنیم

تیک Create a strongly typed view را میزنیم

UserProfile (MvcLoginAppDemo) را از قسمت  Model class انتخاب میکنیم

Empty را از قسمت Scaffold template انتخاب میکنیم.

و روی Add کلیک میکنیم.

کدهای زیر را در Login.cshtml (view) وارد میکنیم

    @model MvcLoginAppDemo.UserProfile  
      
    @{  
    ViewBag.Title = "Login";  
    }  
      
    @using (Html.BeginForm("Login", "Home", FormMethod.Post))  
    {  
    <fieldset>  
    <legend>Mvc Simple Login Application Demo</legend>  
      
    @Html.AntiForgeryToken()  
    @Html.ValidationSummary(true)  
    @if (@ViewBag.Message != null)  
    {  
    <div style="border: 1px solid red">  
    @ViewBag.Message  
    </div>  
    }  
    <table>  
    <tr>  
    <td>@Html.LabelFor(a => a.UserName)</td>  
    <td>@Html.TextBoxFor(a => a.UserName)</td>  
    <td>@Html.ValidationMessageFor(a => a.UserName)</td>  
    </tr>  
    <tr>  
    <td>  
    @Html.LabelFor(a => a.Password)  
    </td>  
    <td>  
    @Html.PasswordFor(a => a.Password)  
    </td>  
    <td>  
    @Html.ValidationMessageFor(a => a.Password)  
    </td>  
    </tr>  
    <tr>  
    <td></td>  
    <td>  
    <input type="submit" value="Login" />  
    </td>  
    <td></td>  
    </tr>  
    </table>  
    </fieldset>  
    }  

View برای متد UserDashBoard Action  ایجاد میکنیم.و کدهای زیر را در UserDashBoard.cshtml (View). وارد میکنیم

    @ {  
        ViewBag.Title = "UserDashBoard";  
    }  
      
    < fieldset >  
        < legend > User DashBoard < /legend>  
      
    @if(Session["UserName"] != null) { < text >  
            Welcome @Session["UserName"].ToString() < /text>  
    } < /fieldset>  

مرحله 5: Set as StartUp Page

به Explorer, Project, App_Start, و  سپس RouteConfig.cs رفته و action name از Index به Login تغییر میدهیم.(Login.cshtml as start up page)

code

مرحله 6: اجرای برنامه

اگر نام و پسورد  user  درست باشد و در دیتابیس موجود باشد ،پس از فشردن دکمه Login به صفحه dashboard خود هدایت میشود.

آموزش asp.net mvc

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید