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

八、Send Email

  1. .Net Framework
 public static class MailHelper
    {
        public static  void SendEmail()
        {
            //声明一个Mail对象
            MailMessage mymail = new MailMessage();
            //发件人地址
            //如是自己,在此输入自己的邮箱
            mymail.From = new MailAddress("18211019093@163.com");
            //收件人地址
            mymail.To.Add(new MailAddress("18211019093@163.com"));
            //邮件主题
            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

作者:liujf
出处:http://www.cnblogs.com/liujf5566/
本文版权归作者和博客园所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利~

原文地址:https://www.cnblogs.com/liujf5566/p/7204613.html