반응형
일단 ASP.NET 설치를 해야한다!
맴버쉽 컨트롤러(
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.VisualStudio.Web.CodeGeneration.Contracts.Messaging;
using NetCore.Web.Models;
namespace NetCore.Web.Controllers
{
public class MembershipController : Controller
{
public IActionResult Index()
{
return View();
}
[HttpGet]
public IActionResult Login()
{
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult Login(LoginInfo login)
{
string message = string.Empty;
if (ModelState.IsValid)
{
string userid = "ㅁㅁㅁㅁㅁ";
string password = "ㅁㅁㅁㅁ";
if (login.UserId.Equals(userid) && login.Password.Equals(password))
{
TempData["Message"] = "로그인이 성공적으로 이루어졌습니다.";
return RedirectToAction("Index", "Membership");
}
else
{
message = "로그인되지 않았습니다";
}
}
else
{
message = "로그인정보를 올바르게 입력하세요.";
}
ModelState.AddModelError(string.Empty, message);
return View(login);
}
}
}
로그인 모델
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Threading.Tasks;
namespace NetCore.Web.Models
{
public class LoginInfo
{
[Required(ErrorMessage ="사용자 아이디를 입력하세요")]
[MinLength(6,ErrorMessage = "사용자 아이디는 6자 이상 입력하세요")]
[Display(Name = "사용자 아이디")]
public string UserId { get; set; }
[Required(ErrorMessage = "비밀번호를 입력하세요")]
[MinLength(6, ErrorMessage = "비밀번호는 6자 이상 입력하세요")]
[Display(Name = "비밀번호")]
public string Password { get; set; }
}
}
뷰 추가
Index -view
@{
ViewData["Title"] = "멤버십";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h1>@ViewData["Title"]</h1>
<div class="text-info">@TempData["Message"]</div>
Login -view
@model LoginInfo
@{
ViewData["Title"] = "멤버십 로그인";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h1>@ViewData["Title"]</h1>
<div class="row">
<div class="col-md-4">
<form method="Post" asp-controller="Membership" asp-action="Login" onsubmit="btnLogin.disabled = true; return true;">
<div class="text-danger" asp-validation-summary="All"></div>
<div class="form-group">
@Html.DisplayNameFor(m => m.UserId)
<input type="text" class="form-control" asp-for="UserId" placeholder="User id" autofocus />
<span class="text-danger" asp-validation-for="UserId"></span>
</div>
<div class="form-group">
@Html.DisplayNameFor(m => m.Password)
<input type="password" class="form-control" asp-for="Password" placeholder="Password" />
<span class="text-danger" asp-validation-for="Password"></span>
</div>
<button type="submit" name="btnLogin" class="btn btn-lg btn-success btn-block">멤버십 로그인</button>
</form>
</div>
</div>
반응형
'C#' 카테고리의 다른 글
C#- Log File Manager 라이브러리를 만들자 ! (15) | 2024.02.08 |
---|---|
C# Thread(스레드) 주요 속성과 메서드 ! (1) | 2024.02.08 |
EXCEL에서 CODE 128 폰트로 읽을 수 있는 바코드 만들기 렛츠 고우 (18) | 2024.01.22 |
C# - 네트워크 , Socket , TCP소켓 대해 알아보자 (3) | 2023.10.17 |
C# 문법 - String 문자열을 Enum으로 바꾸는 방법 /Trim(Char[])로 원하는 문자 제거 /구조체의 차이점 복습 (1) | 2023.10.17 |
C# - PDA 프로그램 개발 DataGridView 정렬과 row 이동하기 (DataTable, DataView 사용) (1) | 2023.10.15 |