ASP.NET Core - 用户注册

ASP.NET Core - 用户注册 首页 / ASP.Net Core入门教程 / ASP.NET Core - 用户注册

在本章中,无涯教程将讨论用户注册,现在有了一个正常工作的数据库,是时候开始向应用程序中添加一些功能了,还配置了应用程序,并具有有效的数据库架构。现在转到应用程序主页。

User Registration

通过按F12打开开发人员工具,然后单击"Edit"。以前,当单击"Edit"链接时,MVC框架检测到存在Authorize属性并由于用户未登录而返回401代码。

Developer Tools

现在,您将看到配置文件在屏幕上显示一条消息。

现在转到开发人员工具。

链接:https://www.learnfk.comhttps://www.learnfk.com/asp.net_core/asp.net-core-user-registration.html

来源:LearnFk无涯教程网

Developer Tools Network

现在继续前进,在Controllers文件夹中添加一个新类,并将其命名为AccountController。将从MVC框架的基础Controller类派生该类。

using Microsoft.AspNet.Mvc; 

using System; 
using System.Collections.Generic; 
using System.ComponentModel.DataAnnotations;
using System.Linq; 
using System.Threading.Tasks;  

namespace FirstAppDemo.Controllers { 
   public class AccountController : Controller {  
   } 
} 

现在创建一个动作,当进入/account/register时将返回一个视图。

public class AccountController : Controller { 
   [HttpGet] 
   public ViewResult Register() { 
      return View(); 
   } 
}

不需要查找任何内容,用户将提供需要的所有信息,在为该视图构建ViewModel之前,需要确定该视图将显示的信息。

通过在AccountController.cs文件中添加一个新类并为此命名为RegisterViewModel来为此场景创建一个视图模型。

让无涯教程创建一些属性,该属性将保存用户名,密码和用户ConfirmPassword,方法是键入两次并确保两个密码都匹配,如以下程序所示。

public class RegisterViewModel { 
   [Required, MaxLength(256)] 
   public string Username { get; set; }  
   
   [Required, DataType(DataType.Password)] 
   public string Password { get; set; }  
   
   [DataType(DataType.Password), Compare(nameof(Password))] 
   public string ConfirmPassword { get; set; } 
}

在上面的类中,您可以看到一些注释,可以帮助验证此模型。这里需要用户名,如果您查看数据库模式,保存用户名的列长度为256个字符。

User Name
  • 还将在此处应用MaxLength属性。

  • 将需要一个密码,为该密码提供输入时,希望输入类型为 Type Password ,这样字符就不会显示在屏幕上。

  • 确认密码也将是数据类型密码,然后还有一个附加的Compare属,将比较ConfirmPassword字段和可以指定的另一个属性,即Password字段。

现在创建所需的视图,将需要在视图中添加一个新文件夹并将其命名为Account,因此与AccountController相关的所有视图都将添加到该文件夹​​中。

Account Controller

现在,右键单击Account文件夹,然后选择Add→New Item。

MVC View Page

在中间窗格中,选择" MVC View Page "并将其命名为Register.cshtml,然后单击"Add"按钮。

从Register.cshtml文件中删除所有现有代码,然后添加以下代码。

@model RegisterViewModel 
@{ 
   ViewBag.Title = "Register"; 
}  
<h1>Register</h1> 

<form method = "post" asp-controller = "Account" asp-action = "Register"> 
   <div asp-validation-summary = "ValidationSummary.ModelOnly"></div> 
   
   <div> 
      <label asp-for = "Username"></label> 
      <input asp-for = "Username" /> 
      <span asp-validation-for = "Username"></span> 
    </div> 
   
   <div> 
      <label asp-for = "Password"></label> 
      <input asp-for = "Password" /> 
      <span asp-validation-for = "Password"></span> 
   </div> 
   
   <div> 
      <label asp-for = "ConfirmPassword"></label> 
      <input asp-for = "ConfirmPassword" /> 
      <span asp-validation-for = "ConfirmPassword"></span> 
   </div> 
    
   <div> 
      <input type = "submit" value = "Register" /> 
   </div> 

</form>

在AccountController中,还需要实现HttpPost Register操作方法。回到AccountController并添加以下Register操作,如下所示:

[HttpPost] 
public IActionResult Register (RegisterViewModel model) {  
}

此操作方法将返回IActionResult,这将收到一个RegisterViewModel,现在,无涯教程需要与Identity框架进行交互以确保用户有效,告诉Identity框架创建该用户,然后由于他们刚刚创建了帐户,因此继续进行登录,在下一章中执行所有这些步骤。

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

Java核心技术面试精讲 -〔杨晓峰〕

分布式数据库30讲 -〔王磊〕

用户体验设计实战课 -〔相辉〕

流程型组织15讲 -〔蒋伟良〕

容量保障核心技术与实战 -〔吴骏龙〕

性能优化高手课 -〔尉刚强〕

超级访谈:对话毕玄 -〔毕玄〕

零基础学Python(2023版) -〔尹会生〕

结构思考力 · 透过结构看问题解决 -〔李忠秋〕

好记忆不如烂笔头。留下您的足迹吧 :)