• Trang chủ
  • Du lịch
  • Giải trí
  • Học tập
  • Tài chính
  • Thủ thuật – Công nghệ
  • Tổng hợp
  • Xe cộ
Facebook Twitter Instagram
  • Trang chủ
  • Giới thiệu
  • Thông tin liên hệ
  • Bảo mật người dùng
Facebook Twitter Instagram LinkedIn
Chuyện tình Havard Chuyện tình Havard
Banner
  • Trang chủ
  • Du lịch
  • Giải trí
  • Học tập
  • Tài chính
  • Thủ thuật – Công nghệ
  • Tổng hợp
  • Xe cộ
Chuyện tình Havard Chuyện tình Havard
You are at:Home»Thủ thuật»Chi tiết cách làm trang đăng nhập bằng ASP.NET MVC

Chi tiết cách làm trang đăng nhập bằng ASP.NET MVC

0
By cthavard1@ on Tháng Tám 30, 2021 Thủ thuật
Share
Facebook Twitter Pinterest Email

TÓM TẮT NỘI DUNG

  1. ASP.NET MVC là gì?
  2. Cách làm trang đăng nhập bằng ASP.NET MVC

Bài viết dưới đây chúng tôi sẽ hướng dẫn quý bạn đọc cách làm trang đăng nhập bằng ASP.NET MVC nhanh chóng, đơn giản nhất. Hãy cùng chúng tôi bắt đầu tìm hiểu chi tiết nhé.

ASP.NET MVC là gì?

làm trang đăng nhập bằng asp.net mvc

Học lập trình web trực tuyến bằng ứng dụng ASP.NET MVCASP.NET MVC là một trong những framework tuyệt vời để hỗ trợ pattern MVC cho ASP.NET. Nếu bạn đang muốn tìm hiểu ASP.NET MVC làm việc như thế nào, bạn đọc cần phải có sự hiểu biết chi tiết về mô hình MVC. MVC là thuật ngữ viết tắt của các cụm từ  Model-View-Controller.

  • Model có chức năng lưu trữ dữ liệu của ứng dụng và tất cả trạng thái của nó. Đây là một cơ sở dữ liệu hoặc cũng có thể đơn giản chỉ là một tập tin XML.
  • View được coi là một giao diện mà người dùng được sử dụng bởi các khách hàng truy cập vào trang web của bạn để có thể nhìn thấy các dữ liệu. Các trang ASPX thường được sử dụng để giúp hiển thị view ở trong các ứng dụng ASP.NET MVC.
  • Controller sẽ chịu trách nhiệm việc xử lý mọi tương tác của người dùng đối với trang web. Controller được sử dụng để xác định loại view nào cần được hiển thị. Controller còn được sử dụng với mục đích để giao tiếp với model.

làm trang đăng nhập bằng asp.net mvc

Cách làm trang đăng nhập bằng ASP.NET MVC

Dưới đây là toàn bộ code của cách làm trang đăng nhập bằng ASP.NET MVC:

Login.cshtml.cs

using System;

using System.Collections.Generic;

using System.ComponentModel.DataAnnotations;

using System.Linq;

using System.Text.Encodings.Web;

using System.Threading.Tasks;

using Album.Models;

using Microsoft.AspNetCore.Authentication;

using Microsoft.AspNetCore.Authorization;

using Microsoft.AspNetCore.Identity;

using Microsoft.AspNetCore.Identity.UI.Services;

using Microsoft.AspNetCore.Mvc;

using Microsoft.AspNetCore.Mvc.RazorPages;

using Microsoft.Extensions.Logging;

using XTLASPNET;

namespace Album.Areas.Identity.Pages.Account {

    [AllowAnonymous]

    public class LoginModel : PageModel {

        private readonly UserManager<AppUser> _userManager;

        private readonly SignInManager<AppUser> _signInManager;

        private readonly ILogger<LoginModel> _logger;

        public LoginModel (SignInManager<AppUser> signInManager,

            ILogger<LoginModel> logger,

            UserManager<AppUser> userManager) {

            _userManager = userManager;

            _signInManager = signInManager;

            _logger = logger;

        }

        [BindProperty]

        public InputModel Input { get; set; }

        public IList<AuthenticationScheme> ExternalLogins { get; set; }

        public string ReturnUrl { get; set; }

        [TempData]

        public string ErrorMessage { get; set; }

        public class InputModel {

            [Required (ErrorMessage = “Không để trống”)]

            [Display (Name = “Nhập username hoặc email của bạn”)]

            [StringLength (100, MinimumLength = 1, ErrorMessage = “Nhập đúng thông tin”)]

            public string UserNameOrEmail { set; get; }

            [Required]

            [DataType (DataType.Password)]

            [Display(Name = “Mật khẩu”)]

            public string Password { get; set; }

            [Display (Name = “Nhớ thông tin đăng nhập?”)]

            public bool RememberMe { get; set; }

        }

        public async Task OnGetAsync (string returnUrl = null) {

            if (!string.IsNullOrEmpty (ErrorMessage)) {

                ModelState.AddModelError (string.Empty, ErrorMessage);

            }

            returnUrl = returnUrl ?? Url.Content (“~/”);

            // Clear the existing external cookie to ensure a clean login process

            await HttpContext.SignOutAsync (IdentityConstants.ExternalScheme);

            ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync ()).ToList ();

            ReturnUrl = returnUrl;

        }

        public async Task<IActionResult> OnPostAsync (string returnUrl = null) {

            returnUrl = returnUrl ?? Url.Content (“~/”);

            // Đã đăng nhập nên chuyển hướng về Index

            if (_signInManager.IsSignedIn (User)) return Redirect (“Index”);

            if (ModelState.IsValid) {

                // Thử login bằng username/password

                var result = await _signInManager.PasswordSignInAsync (

                    Input.UserNameOrEmail,

                    Input.Password,

                    Input.RememberMe,

                    true

                );

                if (!result.Succeeded) {

                    // Thất bại username/password -> tìm user theo email, nếu thấy thì thử đăng nhập

                    // bằng user tìm được

                    var user = await _userManager.FindByEmailAsync (Input.UserNameOrEmail);

                    if (user != null) {

                        result = await _signInManager.PasswordSignInAsync (

                            user,

                            Input.Password,

                            Input.RememberMe,

                            true

                        );

                    }

                }

                if (result.Succeeded) {

                    _logger.LogInformation (“User đã đăng nhập”);

                    return ViewComponent(MessagePage.COMPONENTNAME, new MessagePage.Message() {

                        title = “Đã đăng nhập”,

                        htmlcontent = “Đăng nhập thành công”,

                        urlredirect = returnUrl

                    });

                }

                if (result.RequiresTwoFactor) {

                    // Nếu cấu hình đăng nhập hai yếu tố thì chuyển hướng đến LoginWith2fa

                    return RedirectToPage (“./LoginWith2fa”, new { ReturnUrl = returnUrl, RememberMe = Input.RememberMe });

                }

                if (result.IsLockedOut) {

                    _logger.LogWarning (“Tài khoản bí tạm khóa.”);

                    // Chuyển hướng đến trang Lockout – hiện thị thông báo

                    return RedirectToPage (“./Lockout”);

                } else {

                    ModelState.AddModelError (string.Empty, “Không đăng nhập được.”);

                    return Page ();

                }

            }

            // If we got this far, something failed, redisplay form

            return Page ();

        }

    }

}

Login.cshtml

 

@page “/login/”

@model LoginModel

@{

    ViewData[“Title”] = “ĐĂNG NHẬP”;

}

<h1>@ViewData[“Title”]</h1>

<div class=“row”>

    <div class=“col-md-4”>

        <section>

            <form id=“account” method=“post”>

                <h4>Điền thông tin để đăng nhập.</h4>

                <hr />

                <div asp–validation–summary=“All” class=“text-danger”></div>

                <div class=“form-group”>

                    <label asp–for=“Input.UserNameOrEmail”></label>

                    <input asp–for=“Input.UserNameOrEmail” class=“form-control” />

                    <span asp–validation–for=“Input.UserNameOrEmail” class=“text-danger”></span>

                </div>

                <div class=“form-group”>

                    <label asp–for=“Input.Password”></label>

                    <input asp–for=“Input.Password” class=“form-control” />

                    <span asp–validation–for=“Input.Password” class=“text-danger”></span>

                </div>

                <div class=“form-group”>

                    <div class=“checkbox”>

                        <label asp–for=“Input.RememberMe”>

                            <input asp–for=“Input.RememberMe” />

                            @Html.DisplayNameFor(m => m.Input.RememberMe)

                        </label>

                    </div>

                </div>

                <div class=“form-group”>

                    <button type=“submit” class=“btn btn-primary”>Đăng nhập</button>

                </div>

                <div class=“form-group”>

                    <p>

                        <a id=“forgot-password” asp–page=“./ForgotPassword”>Bạn quyên mật khẩu?</a>

                    </p>

                    <p>

                        <a asp–page=“./Register” asp–route–returnUrl=“@Model.ReturnUrl”>Chưa có tài khoản, đăng ký mới</a>

                    </p>

                </div>

            </form>

        </section>

    </div>

    <div class=“col-md-6 col-md-offset-2”>

        <section>

            <h4>Đăng nhập bằng.</h4>

            <hr />

            @{

                if ((Model.ExternalLogins?.Count ?? 0) == 0)

                {

                    <div>

                        <p>

                            Chưa cấu hình đăng nhập bằng dịch vụ khác. See <a href=“https://go.microsoft.com/fwlink/?LinkID=532715”>this article</a>

                        </p>

                    </div>

                }

                else

                {

                    <form id=“external-account” asp–page=“./ExternalLogin” asp–route–returnUrl=“@Model.ReturnUrl” method=“post” class=“form-horizontal”>

                        <div>

                            <p>

                                @foreach (var provider in Model.ExternalLogins)

                                {

                                    <button type=“submit” class=“btn btn-primary” name=“provider” value=“@provider.Name” title=“Log in using your @provider.DisplayName account”>@provider.DisplayName</button>

                                }

                            </p>

                        </div>

                    </form>

                }

            }

        </section>

    </div>

</div>

@section Scripts {

    <partial name=“_ValidationScriptsPartial” />

làm trang đăng nhập bằng asp.net mvc

Trên đây là chi tiết cách làm trang đăng nhập bằng ASP.NET MVC. Hy vọng bạn đọc có thể dễ dàng thực hiện thành công.

làm trang đăng nhập bằng asp.net mvc
Share. Facebook Twitter Pinterest Email

Bài viết liên quan

Thủ thuật

Quy trình khép kín của một phần mềm chăm sóc khách hàng

Thủ thuật

Hướng dẫn cách copy và paste trong khi đang ở chế độ filter đơn giản nhất

Thủ thuật

Tại sao không vào được WordPress để quản trị?

Leave A Reply Cancel Reply

Bài viết mới nhất
  • Dịch vụ dọn nhà theo giờ Hà Nội chuyên nghiệp, chất lượng
  • Quy trình khép kín của một phần mềm chăm sóc khách hàng
  • 7 bước tạo nên một quy trình tuyển dụng nhân sự hiệu quả
  • Muốn định cư ở Mỹ cần những thủ tục gì?
  • Cách làm nama chocolate tan chảy cực dễ
Kênh xã hội
  • Facebook
  • Twitter
  • Instagram
  • Pinterest
bài viết được quan tâm

Em là ai từ đâu bước đến nơi đây dịu dàng chân phương – lời bài hát “Nơi này có anh”

Mã giảm giá là gì? 4 mã giảm giá Hot nhất hiện nay

Sữa hươu cao cổ Abbott Grow tốt không? Gồm bao nhiêu loại?

Nên đi Đà Lạt tháng mấy? Mách bạn những kinh nghiệm phượt Đà Lạt

chuyên mục hay
  • Du lịch
  • Giải trí
  • Học tập
  • Tài chính
  • Thủ thuật
  • Thủ thuật – Công nghệ
  • Tin tức giải trí
  • Tổng hợp
  • Xe cộ
  • Xe đẹp
Thư viện ảnh
tin hot

Dịch vụ dọn nhà theo giờ Hà Nội chuyên nghiệp, chất lượng

Quy trình khép kín của một phần mềm chăm sóc khách hàng

7 bước tạo nên một quy trình tuyển dụng nhân sự hiệu quả

Copyright © 2022. Designed by Chuyentinhhavard.com.
  • Trang chủ
  • Giới thiệu
  • Thông tin liên hệ
  • Bảo mật người dùng

Type above and press Enter to search. Press Esc to cancel.