ساخت یک Login ساده با استفاده از Session ها در MVC
یکشنبه 30 خرداد 1395در این مقاله با به کارگیری مفهوم Session یک برنامه ی ساده می سازیم که در آن کاربر با وارد کردن نام کاربری و رمز عبور بتواند وارد سایت شود.
طراحی پایگاه داده
با استفاده از script زیر ، جدول UserProfile را ایجاد کنید.
Create Table UserProfile ( UserId int primary key identity(1, 1), UserName varchar(50), Password varchar(50), IsActive bit )
رکوردهای مربوط به کاربران را با استفاده از script زیر به جدول اضافه کنید.
Insert into UserProfile Select 'Barnamenevisan', '123', 1 Union All
مرحله 1 : ایجاد یک پروژه
به FILE بروید و New و سپس Project را انتخاب کنید.

از منوی باز شده ، C# را انتخاب کنید و از قسمت web بر روی ASP.NET MVC 4 Web Application کلیک کنید. سپس یک نام برای برنامه انتخاب کنید و کلید OK را بزنید.

در پنجره ای که مطابق شکل زیر باز می شود، Basic را انتخاب کنید و قسمت view engine را بر روی Razor قرار دهید. سپس کلید OK را بزنید.

مرحله 2 : یک Entity Data Model اضافه کنید.
به Solution Explorer بروید و بر روی Project کلیک راست کنید و ADO.NET Entity Data Model را انتخاب کنید.

یک نام برای مدل خودتان انتخاب کنید و بر روی OK کلیک کنید.

گزینه ی Generate from database را انتخاب کنید و بر روی Add کلیک کنید.

بر روی New Connection کلیک کنید.

بعد از کلیک کردن برروی این گزینه ، مشخصات مورد نظر را وارد کنید.
نام سرور را وارد کنید.
نام کاربری و رمز عبورخودتان را وارد کنید.
سپس نام پایگاه داده ی خودتان را انتخاب کنید. و بر روی دکمه ی Finish کلیک کنید.

در نهایت ، entity شما به صورت زیر خواهد بود :

مرحله 3 : اضافه کردن یک Controller
در قسمت Solution Explorer ، بر روی پوشه ی Controller کلیک راست کرده و سپس بر روی Controller کلیک کنید .

یک نام برای Controller انتخاب کنید و Scaffolding template را بر روی Empty MVC Controller قرار دهید. سپس بر روی OK کیلک کنید.

تکه کد زیر را در 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 ها
برای Action Method ما که به نام Login است یک view ایجاد کنید.
بر روی Login Action method کلیک راست کرده و سپس گزینه ی Add View را مانند شکل زیر انتخاب کنید.

View هایی از نوع Strongly Typed ایجاد کنید
نام view باید مطابق با نام action method باشد .
view engine را بر روی Razor قرار دهید.
گزینه ی Create a strongly typed view را تیک بزنید.
Scaffold template را بر روی Empty قرار دهید.
بر روی Add کلیک کنید.

و کد زیر را در Login.cshtml وارد کنید.
@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>
}
برای Action method ای که نام آن ، UserDashBoard است یک view ایجاد کنید . کد زیر را در آن وارد کنید.
@ {
ViewBag.Title = "UserDashBoard";
}
< fieldset >
< legend > User DashBoard < /legend>
@if(Session["UserName"] != null) { < text >
Welcome @Session["UserName"].ToString() < /text>
} < /fieldset>
مرحله 5 : صفحه ی StartUp را تنظیم کنید.
به قسمت RouteConfig.cs بروید و مطابق زیر نام action را از Index به Login تغییر بدهید.

مرحله 6 : برنامه را اجرا کنید. خروجی ها به ترتیب مطابق زیر خواهند بود .


آموزش asp.net mvc
- ASP.net MVC
- 3k بازدید
- 3 تشکر