您的位置:首页 > 编程语言 > ASP

Asp.net core 笔记

2017-07-19 11:03 330 查看

一、Getting Start

英文文档

Getting Start

中文文档

翻译文档

博客园提供

二、配置

10分钟入门配置

Startup.cs:配置服务、路由策略、依赖注入、权限认证等...

三、敏感数据存储

英文

中文

四、EntityFrameWork

EF Code First

切换Sqllite数据库

(1). 添加"Microsoft.EntityFrameworkCore.Sqlite"引用。

(2). 修改Startup.cs中的"ConfigServices"方法 。

var connection = "Filename=./efcoredemo.db";
services.AddDbContext<DataContext>(options => options.UseSqlite(connection));

五、其他

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

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

IOC:IOC

依赖注入: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.cs
ForgotPassword
方法中取消注释的代码。

(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

.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);
}
}


Asp.net Core

使用第三方服务:MailKit

MailKit
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐