zoukankan      html  css  js  c++  java
  • 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/
    本文版权归作者和博客园所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利~

  • 相关阅读:
    ASP.NET Zero--后端应用程序
    ASP.NET Zero--前期要求
    ASP.NET Zero--解决方案结构(层)
    ASP.NET Zero--开发指南
    Pos终端中的主密钥、工作密钥、pin密钥、mac密钥
    location.origin不兼容IE8解决方案
    一些常用的meta标签
    c#核心基础-委托
    springBoot项目启动去掉多余的启动日志
    如何发行自己的TRC20代币,并上线JustSwap去中心化交易所
  • 原文地址:https://www.cnblogs.com/liujf5566/p/7204613.html
Copyright © 2011-2022 走看看