ایجاد Login با استفاده از session در MVC
چهارشنبه 22 اردیبهشت 1395در این مقاله قصد داریم با استفاده ازsession در ASP.NET MVC نحوه لاگین به برنامه و پس از لاگین شدن هدایت به پنل کاربری را آموزش دهیم .در اینجا از تکنولوژی ADO.NET Entity Data Model استفاده میکینم.
این مقاله موارد زیر توضیح می دهد :
نحوه ایجاد یک پروژه 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 کلیک کنید.
Visual C# را انتخاب کرده و Web را از پنل زیر آن انتخاب میکنیم. ASP.NET MVC 4 Web Application را انتخاب و نام پروژه را MvcLoginAppDemo میگذاریم , و روی OK کلیک میکنیم.
در Project template ،گزینه Basic را انتخاب کرده و view engine را روی Razor گذاشته و OK میکنیم.
مرحله 2 :افزودن Entity Data Model
روی Solution Explorer پروژه راست کلیک کرده و ADO.NET Entity Data Model را انتخاب کنید.
در پنجره باز شده نامی برای مدل خود انتخاب کرده و روی Add کلیک میکنیم.
Generate from database را انتخاب و روی Next کلیک میکنیم.
روی New Connection کلیک میکنیم.
پس از کلیک کردن بر روی 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کلیک کنید
Yes include the sensitive data in the connection string. را انتخاب کنید.
در پنجره Choose your database objects ،مانند تصویر زیر جدول مورد نظر را انتخاب میکنیم.
روی Finish کلیک کنید. در این مرحله موجودیت USERPROFILE ایجاد خواهد شد.
مرحله 3: افزودن یک Controller
در پروژه روی پوشه Controller راست کلیک کرده وروی گزینه Add و Controller کلیک میکنیم.
یا از کلیدهای میانبر Ctrl + M, Ctrl + C استفاده میکنیم.
مانند تصویر زیر نام کنترلر و و در قسمت Scaffolding template گزینه Empty MVC Controller را انتخاب و روی 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 مانند زیر کلیک میکنیم.
ایجاد 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)
مرحله 6: اجرای برنامه
اگر نام و پسورد user درست باشد و در دیتابیس موجود باشد ،پس از فشردن دکمه Login به صفحه dashboard خود هدایت میشود.
آموزش asp.net mvc
- ASP.net MVC
- 5k بازدید
- 9 تشکر