91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

asp.net core mvc怎么做登錄頁面

小億
81
2024-11-30 08:09:38
欄目: 編程語言

在ASP.NET Core MVC中創建一個登錄頁面,你需要遵循以下步驟:

  1. 創建一個新的MVC項目(如果你還沒有一個): 打開Visual Studio,選擇 “創建新項目”,然后搜索 “ASP.NET Core Web 應用程序”,選擇一個適合你需求的模板(例如,“Web 應用程序”),然后點擊 “創建”。

  2. 添加MVC控制器和視圖: 在 “解決方案資源管理器” 中,右鍵單擊 “Controllers” 文件夾,然后選擇 “添加” -> "控制器…”。在彈出的窗口中,選擇 “MVC 控制器 - 空”,然后點擊 “添加”。在 “添加新的Scaffolded項目” 對話框中,確保選擇了 “MVC 控制器 - 使用讀/寫操作” 和 “MVC 視圖 - 使用 EF Core”,然后點擊 “添加”。

  3. 創建登錄視圖: 在 “Views” -> “Home” 文件夾中,找到 “Index.cshtml” 文件并替換其內容,以創建一個登錄表單。你可以使用以下代碼作為示例:

@model YourNamespace.Models.LoginViewModel

@{
    ViewData["Title"] = "登錄";
}

<h2>登錄</h2>

<form asp-action="Login">
    <div>
        <label asp-for="Username"></label>
        <input asp-for="Username" />
    </div>
    <div>
        <label asp-for="Password"></label>
        <input asp-for="Password" type="password" />
    </div>
    <button type="submit">登錄</button>
</form>
  1. 創建登錄模型: 在 “Models” 文件夾中,創建一個名為 “LoginViewModel.cs” 的新文件,并添加以下代碼:
namespace YourNamespace.Models
{
    public class LoginViewModel
    {
        [Required]
        [Display(Name = "用戶名")]
        public string Username { get; set; }

        [Required]
        [DataType(DataType.Password)]
        [Display(Name = "密碼")]
        public string Password { get; set; }
    }
}
  1. 創建登錄控制器: 在 “Controllers” 文件夾中,找到 “HomeController.cs” 文件并替換其內容,以創建一個處理登錄請求的控制器方法。你可以使用以下代碼作為示例:
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc;
using YourNamespace.Models;

namespace YourNamespace.Controllers
{
    public class HomeController : Controller
    {
        private readonly UserManager<ApplicationUser> _userManager;
        private readonly SignInManager<ApplicationUser> _signInManager;

        public HomeController(UserManager<ApplicationUser> userManager, SignInManager<ApplicationUser> signInManager)
        {
            _userManager = userManager;
            _signInManager = signInManager;
        }

        [HttpGet]
        public IActionResult Login()
        {
            return View();
        }

        [HttpPost]
        [ValidateAntiForgeryToken]
        public async Task<IActionResult> Login(LoginViewModel model)
        {
            if (ModelState.IsValid)
            {
                var result = await _signInManager.PasswordSignInAsync(model.Username, model.Password, false, lockoutOnFailure: true);
                if (result.Succeeded)
                {
                    return RedirectToAction("Index", "Home");
                }
                else
                {
                    ModelState.AddModelError(string.Empty, "用戶名或密碼不正確。");
                }
            }

            return View(model);
        }
    }
}
  1. 配置身份驗證: 在 “Startup.cs” 文件中,確保你已經配置了身份驗證中間件。你需要在 “ConfigureServices” 方法中添加以下代碼:
public void ConfigureServices(IServiceCollection services)
{
    // ...

    services.AddIdentity<ApplicationUser, IdentityRole>()
        .AddEntityFrameworkStores<ApplicationDbContext>()
        .AddDefaultTokenProviders();

    // ...
}

同時,在 “Configure” 方法中添加以下代碼:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    // ...

    app.UseAuthentication();
    app.UseAuthorization();

    // ...
}
  1. 創建用戶模型和數據庫上下文: 在 “Models” 文件夾中,創建一個名為 “ApplicationUser.cs” 的新文件,繼承自 IdentityUser。在 “Data” 文件夾中,創建一個名為 “ApplicationDbContext.cs” 的新文件,繼承自 IdentityDbContext。確保在 “Startup.cs” 文件中將 “ApplicationDbContext” 設置為 “DbContextOptions” 的依賴項。

現在,你已經創建了一個基本的登錄頁面。用戶可以通過表單輸入用戶名和密碼,然后點擊 “登錄” 按鈕提交表單。如果身份驗證成功,用戶將被重定向到主頁。如果身份驗證失敗,將顯示錯誤消息。

0
山丹县| 宁陕县| 南汇区| 昌宁县| 河东区| 民乐县| 新密市| 开鲁县| 肇庆市| 萨迦县| 宁海县| 阳东县| 博客| 巩义市| 永州市| 平乡县| 顺平县| 栖霞市| 修文县| 洛南县| 泽普县| 阳泉市| 南涧| 昌宁县| 勐海县| 疏附县| 保靖县| 会昌县| 金华市| 垣曲县| 台北县| 吴川市| 酉阳| 博白县| 肃宁县| 富宁县| 阳城县| 阆中市| 保德县| 云安县| 云龙县|