随笔分类 - Asp.Net Core
摘要:定义一个继承System.Text.Json.Serialization.JsonConverter的类,实现其Read 和 Write两个抽象方法 public class DateTimeConverter : JsonConverter<DateTime> { public string Da
阅读全文
摘要:在.Net Framework的时候序列化经常使用Newtonsoft.Json插件来使用,而在.Net Core中自带了System.Text.Json,号称性能更好,今天抽空就来捣鼓一下。 使用起来其实也很简单,就是有些地方要注意,比如在我们的对象实体中有中文的话,直接序列化时中文会被转换成编码
阅读全文
摘要:最近公司打算重构目前直销报单系统到微信小程序中,目前的系统只能在PC上面使用,这两年也搞过App端,但是由于人员流动和公司架构调整最后都不了了之,只留下一堆写了一半的接口。以前的接口依然是使用Asp.Net Framework实现的,而.Net的处境也很窘迫,很多.Neter也都转想Java或Pyt
阅读全文
摘要:很多时候如果用户没有某个菜单的操作权限的话在页面是不应该显示出来的。 如果通过Url来访问时,默认会跳转到一个Account/AccessDenied的拒绝页面,所以我们需要在Account控制器中定义一个AccessDenied方法,添加其视图。 当然我们可以自定义拒绝跳转页面,那就是在start
阅读全文
摘要:我们已经在之前介绍了简单的授权是在Controller或Action上添加属性Authorize来实现,那角色授权是在指定Authorize的同时指定Roles参数。 我们来看看基于角色访问的三种方式: 1、指定只有角色为Admin的用户才能访问 2、指定角色为Admin或User的用户才能问问 3
阅读全文
摘要:在前面介绍中我们知道了Asp.Net Core Identity中创建用户使用到的类UserManager<IdentityUser>,同样的,创建角色我们需要使用RoleManager<IdentityRole>。 接下来我们就来看看如何创建角色。 先定义ViewModel 创建AdminCont
阅读全文
摘要:虽然Asp.Net Core.Identity提供了IdentityUser类,但是在有些情况下我们需要一些额外的用户信息,比如性别,年龄等,这时候就需要来扩展IdentityUser类以达到我们的需求。 接下来我们就来定义一个继承自IdentityUser类的ApplicationUser类。 然
阅读全文
摘要:Identity是Asp.Net Core全新的一个用户管理系统,它是一个完善的全面的庞大的框架,提供的功能有: 创建、查询、更改、删除账户信息 验证和授权 密码重置 双重身份认证 支持扩展登录,如微软、Facebook、google、QQ、微信等 提供了一个丰富的API,并且这些API还可以进行大
阅读全文
摘要:很多时候,在模型上的验证需要自己定义一些特定于我们需求的验证属性。所以这一篇我们就来介绍一下怎么自定义验证属性。 我们来实现一个验证邮箱域名的自定义验证属性,当然,最重要的是需要定义一个继承自ValidationAttribute的类,然后在实现其IsValid方法。 然后就可以在我们的Model上
阅读全文
摘要:我们先来看这样一个注册页面和它的后台Model 如果我们点击了注册,校验过程是发送了请求到服务器,在服务器端进行校验,这在某个程度上来说影响了用户体验和系统性能。所以我们需要在提交到服务器前先在客户端进行验证。那么怎么做呢,在Asp.Net Core上很简单。 实现客户端校验只需要添加三个js库即可
阅读全文
摘要:文件上传功能在实际开发中经常使用,在 .Net Core中,文件上传接收类型不再使用 HttpPostedFile 或 HttpFileCollection来接收,而是使用 IFormFile 或 IFormFileCollection来接收。 下面看一个例子就明白怎么使用了,具体代码如下: <fo
阅读全文
摘要:一、介绍 Asp.Net Core Filter 使得可以在请求处理管道的特定阶段的前后执行代码,我们可以创建自定义的 filter 用于处理横切关注点。 横切关注点的示例包括错误处理、缓存、配置、授权和日志记录。 filter 使得可以避免重复代码。 Asp.Net Core 提供了5中过滤器类型
阅读全文
摘要:Asp.Net Core 提供了默认的依赖注入容器 IServiceCollection,它是一个轻量级的依赖注入容器,所以功能不多,只是提供了基础的一些功能,要实现AOP就有点麻烦,因此在实际工作当中,我们常常会使用第三方依赖注入容器替换掉Asp.Net Core自带的依赖注入容器。 我们先来看下
阅读全文
摘要:Asp.Net Core 支持适用于各种内置日志记录API,同时也支持其他第三方日志记录。在我们新建项目后,在Program 文件入口调用了CreateDefaultBuilder,该操作默认将添加以下日志记录提供程序:ConsoleLogger、DebugLogger、EventSourceLog
阅读全文
摘要:我们以前在Asp.Net MVC中使用 System.Configuration.ConfigurationManager 来读取web.config文件。但是Asp.Net Core MVC已经没有web.config文件了,它的配置信息一般写在appsettings.json当中,那么我们怎么读
阅读全文
摘要:模型绑定时将Http请求中的数据映射到控制器操作方法上对应的参数,操作方法中的参数可以是简单类型,如整形,字符串等,也可以是复杂类型,如Product,Order等。 Asp.Net Core MVC的模型绑定和Asp.Net MVC模型绑定相似,模型绑定将按下图指定的顺序查找来自http请求中的数
阅读全文
摘要:我们在之前讲Program.cs文件做了什么的时候,提到启动CreaeDefaultBuilder会获取环境变量来做一些判断之类的操作。那么我们的Taghelper也可以使用“ASPNETCORE_ENVIRONMENT"变量来设置在什么环境下加载什么库文件。可以通过environment标签来使用
阅读全文
摘要:我们使用 libman包管理器来安装,libman是微软推出的最新的包管理器,它是一个轻量级的客户端管理工具,可以从CDN下载客户端库和框架,它要求VS Studio必须在2017版本15.8或更高版本。 我们先来看下怎么使用libman,找到项目的wwwroot,鼠标右键 点击安装,然后在项目中可
阅读全文
摘要:Taghelper是一个服务端的组件,可以在Razor文件中创建和渲染HTML元素,类似于我们在Asp.Net MVC中使用的Html Taghelper。Asp.Net Core MVC内置的Tag Helper用于常见的任务,例如生成链接,创建表单,加载数据等。 那么如何导入内置Tag Help
阅读全文
摘要:布局视图和我们在Asp.Net MVC一样,布局视图_Layout.cshtml使得所有视图保持一致的外观变得更加容易,因为我们只有一个要修改的布局视图文件,更改后将立即反映在整个应用程序的所有视图中。 在 ASP.NET Core MVC 中,有一些视图文件,如布局的视图,_ViewStart.c
阅读全文
浙公网安备 33010602011771号