Asp.net core 笔记

来源:转载

一、Getting Start

  1. 英文文档Getting Start。

  2. 中文文档

翻译文档。

博客园提供。

二、配置

  1. 10分钟入门配置
  2. Startup.cs:配置服务、路由策略、依赖注入、权限认证等...

三、敏感数据存储

  1. 英文
  2. 中文

四、EntityFrameWork

  1. EF Code First
  2. 切换Sqllite数据库(1). 添加"Microsoft.EntityFrameworkCore.Sqlite"引用。(2). 修改Startup.cs中的"ConfigServices"方法 。
var connection = "Filename=./efcoredemo.db"; services.AddDbContext<DataContext>(options => options.UseSqlite(connection));

五、其他

  1. Views/Shared/_Layout.cshtml:共享的布局。@RenderBody()是个占位符。具体试图会填充该部分内容。

  2. Controller和View进行数据传输,可以使用ViewData字典、ViewBag或者强类型的(Model)等...

  3. IOC:IOC

  4. 依赖注入:DI

六、Web Api

Getting Start

七、Asp.net Identidy

1、Getting Start

Asp.net Identity

2、术语解释

SignInManager: 主要处理注册登录相关业务逻辑。

UserManager:处理用户相关添加删除,修改密码,添加删除角色等。

RoleManager:角色相关添加删除更新等。

Claims:证件单元。

ClaimsIdentity:身份证。

ClaimsPrincipal:证件当事人。

Asp.net Identity介绍。

3、 Authentication(认证)

AuthenticationManager:认证管理员。

AuthenticationScheme:验证方案名称。

IAuthenticationHandler:以后如果需要重写认证相关的东西,实现IAuthenticationHandler就可以了。

4、 Authorization(授权)

github上很好的入门例子,有步骤讲解。

ASP.NET Core Authorization Lab。

5、 账号验证和密码找回

Sample。

(1). 修改ConfigureServices方法,启用邮箱验证。

 services.AddIdentity<ApplicationUser, IdentityRole>(config => { config.SignIn.RequireConfirmedEmail = true; }) .AddEntityFrameworkStores<ApplicationDbContext>() .AddDefaultTokenProviders();

(2). 添加"MailKit"引用,使用"MailKit"发送邮件。

MailKit。

(3). 启用账号验证。

AccountController.cs[HttpPost]Register方法中取消注释的代码启用账号验证。

(4). 启用密码找回。

AccountController.csForgotPassword方法中取消注释的代码。

(5). 取消Views/Account/ForgotPassword.cshtml中的注释。

(6). 避免用户未验证邮箱就登陆。

修改AccountController.cs中的[HttpPost]Login方法,添加如下代码。

 // Require the user to have a confirmed email before they can log on. var user = await _userManager.FindByEmailAsync(model.Email); if (user != null) { if (!await _userManager.IsEmailConfirmedAsync(user)) { ModelState.AddModelError(string.Empty, "You must have a confirmed email to log in."); return View(model); } }

6、 JWT Token Authenticating

  • Json Web Token 认证入门。

注意:使用的时候在Postman中注入token是"Bearer balabalabala..."

  • Sample

aspnet-core-webapi-jwt-auth-example。

八、Send Email

  1. .Net Framework
 public static class MailHelper { public static void SendEmail() { //声明一个Mail对象 MailMessage mymail = new MailMessage(); //发件人地址 //如是自己,在此输入自己的邮箱 mymail.From = new MailAddress("[email protected]"); //收件人地址 mymail.To.Add(new MailAddress("[email protected]")); //邮件主题 mymail.Subject = "Subject"; //邮件标题编码 mymail.SubjectEncoding = System.Text.Encoding.UTF8; //发送邮件的内容 mymail.Body = "这是一个测试邮件"; //邮件内容编码 mymail.BodyEncoding = System.Text.Encoding.UTF8; //添加附件 //Attachment myfiles = new Attachment(tb_Attachment.PostedFile.FileName); //mymail.Attachments.Add(myfiles); //抄送到其他邮箱 //mymail.CC.Add(new MailAddress(tb_cc.Text)); //是否是HTML邮件 //mymail.IsBodyHtml = true; //邮件优先级 mymail.Priority = MailPriority.High; //创建一个邮件服务器类 SmtpClient myclient = new SmtpClient(); myclient.Host = "SMTP.163.com"; //SMTP服务端口 myclient.Port = 25; //验证登录 myclient.Credentials = new NetworkCredential("userName", "授权码");//"@"输入有效的邮件名, "*"输入有效的密码 myclient.Send(mymail); } }
  1. Asp.net Core

使用第三方服务:MailKit

MailKit。

分享给朋友:
您可能感兴趣的文章:
随机阅读: