Facebook Twitter Instagram
    Chủ Nhật, 26 Tháng Sáu
    Facebook Twitter LinkedIn VKontakte
    Kickedintheface
    • Trang Chủ
    • Du lịch
    • Tài chính
    • Thủ thuật
    • Tin tức giải trí
    • Tổng hợp
    • Xe đẹp
    Kickedintheface
    Home»Thủ thuật»Chi tiết cách làm trang đăng nhập bằng ASP.NET MVC
    Thủ thuật

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

    Tư vấn doanh nghiệpBy Tư vấn doanh nghiệpTháng Tám 30, 2021Không có phản hồi5 Mins Read
    Facebook Twitter Pinterest LinkedIn Tumblr Email
    Share
    Facebook Twitter LinkedIn Pinterest Email

    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 LinkedIn Tumblr Email
    Previous ArticleGiải đáp câu hỏi enctype= multipart/form-data là gì?
    Next Article Nguyên nhân và cách khắc phục lỗi không thể kích hoạt iphone sau khi restore
    Tư vấn doanh nghiệp
    • Website

    Đã có nhiều năm trong nghề với những kinh nghiệm khó có được. Hy vọng những kiến thức nhỏ nhoi của tôi có thể giúp ích được cho các bạn.

    Related Posts

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

    Tháng Tám 31, 2021

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

    Tháng Tám 30, 2021

    Cách làm hình nền video cho Oppo siêu đáng yêu bạn nên thử

    Tháng Tám 30, 2021

    Leave A Reply Cancel Reply

    Bài viết mới
    • Cần lưu ý gì khi chọn phụ tùng xe đầu kéo mỹ
    • Việc mua Keno Vietlott trực tuyến qua My Viettel có an toàn hay không?
    • Nên mua chung cư nào ở Hà Đông? TOP 5 chung cư đáng mua nhất!
    • Nhà Đẹp Decor Đơn Vị Chuyên Thiết Kế Thi Công Nội Thất
    • Những Hiểu Biết Và Lý Do Nên Chọn Đơn Vị Best Nội Thất
    • Một Số Phòng Khám Mắt Uy Tín Tại TPHCM
    • Top 5 Mẫu Phòng Tắm Hiện Đại Đẹp Độc Đáo Được Ưa Chuộng Nhất
    • Tổng Hợp Một Số Shop Bán Giày Nike Chính Hãng TPHCM
    • Kinh nghiệm khi chọn công việc kiếm tiền tại nhà uy tín
    • Xổ số miền Nam trực tiếp lúc mấy giờ?
    Đừng Bỏ Lỡ

    Long Hải có gì chơi? Kinh nghiệm du hí tại Long Hải

    Danh sách các tư thế và các kiểu chụp ảnh ở biển chất nhất

    Tây Nguyên thuộc miền nào? Vẻ đẹp tiềm ẩn của Tây Nguyên

    Những địa chỉ bán mẫu đầm maxi đi biển cho người thấp

    Đăng Ký Cập Nhận Tin Tức

    Nhận tin tức sáng tạo mới nhất từ Kickedintheface về phương tiện, du lịch, tài chính - kinh doanh

    Kết NỐi Với Chúng Tôi
    • Facebook
    • Twitter
    • Pinterest
    • Instagram
    • YouTube
    • Vimeo
    • danh lam thắng cảnh an giang
      Núi và hồ Tà Pạ
    • danh lam thắng cảnh an giang
      Rừng tràm Trà Sư
    • danh lam thắng cảnh an giang
      Cánh đồng Tà Pạ
    • du lịch thái lan 4 ngày 3 đêm vietravel
      Du lịch Thái Lan 4 ngày 3 đêm cùng với Vietravel
    • làng nướng nam bộ tô hiến thành
      Một mẹt lẩu hấp dẫn tại Nhà hàng
    • làng nướng nam bộ tô hiến thành
      Món bồ câu quy mắm nhĩ ăn kèm với bánh bao tại Nhà hàng
    • đâu là chức năng của tiền tệ
    • đâu là chức năng của tiền tệ
    • đâu là chức năng của tiền tệ
    Bài Viết Phổ Biến

    Cần lưu ý gì khi chọn phụ tùng xe đầu kéo mỹ

    Việc mua Keno Vietlott trực tuyến qua My Viettel có an toàn hay không?

    Nên mua chung cư nào ở Hà Đông? TOP 5 chung cư đáng mua nhất!

    Nhà Đẹp Decor Đơn Vị Chuyên Thiết Kế Thi Công Nội Thất

    Updated:Tháng Tư 30, 2022
    Copyright ©2021. Designed by kickedintheface.com.
    • Giới thiệu
    • Liên hệ
    • Chính sách

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