从浅入深了解.NET Core MVC 2.x全面教程【第一章】

  • 从浅入深了解.NET Core MVC 2.x全面教程【第一章】已关闭评论
  • 279 次浏览
  • A+
所属分类:.NET技术
摘要

1.在【Views】文件夹中创建一个【Razor 视图导入】文件。

2.在这个文件中导入TagHelper

3.然后在视图中使用


一、基础

1.默认配置

  • 使用Kestrel Web Server
    • ASP.NET Core内置——跨平台
  • IIS集成
    • UseIIS()
    • UseIISIntergration()
  • Log
  • IConfiguration接口

2.IConfiguration配置信息的来源

  • appsettings.json
  • User Serets
  • 环境变量
  • 命令行参数
  • XML...

3.管道

从浅入深了解.NET Core MVC 2.x全面教程【第一章】

4.MVC

从浅入深了解.NET Core MVC 2.x全面教程【第一章】

5.路由Routing

  • Concentional Routing
  • Attribute Routing

6.返回View

  • Razor引擎
  • Controller——>ViewResult——>HTML页面

7.ViewModel

从浅入深了解.NET Core MVC 2.x全面教程【第一章】

8.怎么使用Tag Helper

1.在【Views】文件夹中创建一个【Razor 视图导入】文件。
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
2.在这个文件中导入TagHelper
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
3.然后在视图中使用
从浅入深了解.NET Core MVC 2.x全面教程【第一章】

9.输入的Model

  • Form
  • 导航到含有Form的View

10.ASP.NET Core MVC-Form

  • Http Post

11.如何使用EF Core

1.先在【appsettings.json】文件中写上连接字符串,将"xxx"替换成自己对应的数据。

  "ConnectionStrings": {     "DefaultConnction": "Server=xxx;Database=xxx;User Id=xxx;Password=xxx"   } 

2.需要安装这些包。
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
3.写一个【TutorialDbContext.cs】类,该类需要继承自:DbContext
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
4.在【Startup.cs】文件中注入服务。
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
在【ConfigureServices】方法中。
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
5.使用EF Core进行迁移,在【程序包管理控制台】输入2个命令即可。
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
然后会生成2个文件
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
可以看到已经生成了这个数据库了
从浅入深了解.NET Core MVC 2.x全面教程【第一章】

12.Partial View

  • 复用View代码
  • @Html.Partial("_PartialViewName",data)
  • 没有自己的Model
  • 可以嵌套

13.View Components的特点

  • 可复用
  • 独立的组件
  • 有独立的逻辑/数据
  • 相当于迷你MVC请求
  • 不依赖于父级View的数据

14.在VS中如何使用NPM安装前端库

  • 新建一个Npm配置文件

从浅入深了解.NET Core MVC 2.x全面教程【第一章】
从浅入深了解.NET Core MVC 2.x全面教程【第一章】

  • 输入需要引入的库,比如我需要引入【Bootstrap】

从浅入深了解.NET Core MVC 2.x全面教程【第一章】

  • 可以看到已经安装好了。

从浅入深了解.NET Core MVC 2.x全面教程【第一章】

  • 这是物理文件路径。

从浅入深了解.NET Core MVC 2.x全面教程【第一章】

  • 让系统伺服这个文件夹。

从浅入深了解.NET Core MVC 2.x全面教程【第一章】

15.使用前端做数据校验

  • 引入Npm库

从浅入深了解.NET Core MVC 2.x全面教程【第一章】

  • 在项目中引入刚刚导入的库

从浅入深了解.NET Core MVC 2.x全面教程【第一章】

  • 然后前端自动起作用了(最好使用CND,速度快)

16.如何在不同的环境引入不用的库

从浅入深了解.NET Core MVC 2.x全面教程【第一章】
如果CND无法访问,挂了;就加入这个回落机制。
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
判断Bootstrap
从浅入深了解.NET Core MVC 2.x全面教程【第一章】

17.ASP.NET Core Identity

  • 身份验证和授权系统
  • 成员管理
  • 默认使用MS SQL
  • 支持外部的Provider

18.如果有多个DbContext,需要指定某一个。

从浅入深了解.NET Core MVC 2.x全面教程【第一章】

19.Claim

  • 一部分信息
  • Name-Value
  • 可以来自内部或外部
  • 基于策略的(Policy)

20.Prolicy策略

  • 注册policy
  • 使用policy进行授权

21.Policy内置的方式

  • RequireAuthticatedUser:必须登录用户
  • RequireClaim:要求特定的Claim和值
  • RequireRole:要求特定的角色
  • RequireUserName:要求特定的用户名

22.Policy自定义

  • ReuireAssertion
  • AddRequirements
    • IAuthorizationRequirement
      • AuthorizationHandler<TIAuthorizationRequirement-实现IAuthorizationRequirement接口>
      • AuthorizationHandler<TIAuthorizationRequirement-实现IAuthorizationRequirement接口>
      • ...
      • 如果一个Handler返回了Succeed,而其他的都没有返回Fail,那么这个Requirement就被满足了。

23.XSS

XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。
从浅入深了解.NET Core MVC 2.x全面教程【第一章】

24.不被信任的数据

  • HTML input
  • HTTP Headers
  • Query strings
  • Attributes,EXIF 信息

25.怎么防止XSS?

  • HTML Encoding:>变成$gt; <变成 <
    • Razor默认开启了HTML Encoding,但是可以手动关闭
  • 正则表达式
  • 反XSS的第三方库
  • 对请求进行验证

26.内置的编码器

  • HtmlEncoder
  • JavaScriptEncoder
  • UrlEncode

27.CSRF(跨站请求伪造)

从浅入深了解.NET Core MVC 2.x全面教程【第一章】

28.OWASP的CSRF防范方案

  • Header验证:请求头
  • Synchronizer Token Pattern :用户每次请求时携带Token
  • Double Submit Cookie:双重Cookie

29.ASP.NET Core

  • [ValidateAntiForgeryToken]:针对一个Action
  • [AutoValidateAntiForgeryToken]:针对所有的Post
  • [IgnoreAntiForGeryToken]:取消

30.Model Binding

  • Model Binding允许我们用HTPP请求里的数据类创建C#对象,这个对象就是Action方法的参数。
  • 可以使用一下类型用来Model Binding:
    • int,string等简单数据类型
    • 复杂类型对象
    • 数组

31.Model Binder可以绑定哪些值?

  • Form的值(Body中的POST请求)
  • 路由的值
  • QueryString的值(URL地址后的参数)

32.Binding Attributes

  • Bind:有选择行的绑定属性
  • BindNver:可以放在Model对象一个属性上,表示不应该进行绑定
  • BindRequired:必须进行绑定,在验证的过程中不绑定就报错误

33.例子

1.在【ViewModel】中有一个嵌套属性。
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
2.在【View】视图中世界嵌套属性.属性。
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
3.在【Controller】中。
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
有选择的绑定属性,这个特性一般放在【Acion方法中】
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
[BindNever]放在ViewModel中。
从浅入深了解.NET Core MVC 2.x全面教程【第一章】

34.指定Binding的来源,这是特性

  • [FromBody]:RequestBodys——请求的Body
  • [FromQuery]——QueryStrings
  • [FromHeader]:Request Headers——请求头找属性
  • [FromRoute]——路由
  • [FromForm]——表单的值

35.自定义验证Attribute?

1.新建一个类,这个类需要继承【Attribute】,需要实现【IModelValidator】接口。

36.远程调用-特性

  • [Remote]-客户算调用Action方法进行验证。

【在前端直接调用后台方法进行验证。】
ViewModel
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
Controller
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
View
从浅入深了解.NET Core MVC 2.x全面教程【第一章】

37.Tag Helpers

  • Tag Helpers是服务器中的C#代码,他在Razor文件里,他会参与到创建和渲染HTML元素过程。
  • 和HTML Htlpers类似。
  • 跟HTML的命名规范一致。
  • 内置了很多Tag Helpers,也可以自定义。

38.JavaScript Tag Helpers

  • asp-src-include:导入文件,如:javascript
  • asp-src-exclude:将不想加入的文件加入
  • asp-fallback-src:回落机制(调用不到了[asp-src-include]文件然后就调用这个中的)
  • asp-fallvack-test:具体的

从浅入深了解.NET Core MVC 2.x全面教程【第一章】
从浅入深了解.NET Core MVC 2.x全面教程【第一章】

39.CSS Tag Helpers

从浅入深了解.NET Core MVC 2.x全面教程【第一章】

40.其他的Tag Helpers

从浅入深了解.NET Core MVC 2.x全面教程【第一章】

41.环境相关的Tag Helpers

从浅入深了解.NET Core MVC 2.x全面教程【第一章】

42.自定义的TagHelpers

1.继承Tag Helpers父类,实现(Override) Process这个方法。
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
2.注册Tag Helpers
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
3.视图中
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
4.最后生成
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
5.1如果我想添加一个属性,以“-”分割大小写
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
5.2在这个类中添加一个属性
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
6.1如何直接使用下面这种方法实现上面的内容?
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
6.2使用【异步】的方式
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
7.1如果想添加一个既做为【属性】又作为【元素】的TagHelpers?
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
7.2代码
指定目标元素,"或"的关系,只要符合其中一种即可。
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
从浅入深了解.NET Core MVC 2.x全面教程【第一章】

8.1如果我想添加一个颜色?
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
8.2添加一个属性,名称可以不一致,添加一个特性即可。
从浅入深了解.NET Core MVC 2.x全面教程【第一章】
9.1如果改成类?
从浅入深了解.NET Core MVC 2.x全面教程【第一章】

从浅入深了解.NET Core MVC 2.x全面教程【第一章】
9.2设置属性、设置Attribute。
从浅入深了解.NET Core MVC 2.x全面教程【第一章】

43.Tag Helper前缀

//加上前缀就起作用了,不加上就不起作用。
从浅入深了解.NET Core MVC 2.x全面教程【第一章】

44.View Component

  • 显示部门内容
  • Mini Controller
  • 可复用
  • 只能配合父级Virew使用。

45.View Component分成两步

  • 首先需要继承ViewComponent父类
  • 实现Invoke()方法
    • 也可以是异步的:InvokeAsync()
      • 返回IViewComponentResult

下一章节:https://www.cnblogs.com/kimiliucn/p/17616708.html
原文链接:https://www.cnblogs.com/kimiliucn/p/17611047.html