前面有说到`UserAuthentication()`跟`UserAuthorization()`,这两个的差别在于:前者用于验证登录者是谁,后者则决定登录者可以做什么。
前天有在`Blog.razor`加入通过验证及未通过的显示内容,但如果系统要呈现的未通过验证内容都一样,在每个Component 都这样写就太浪费时间了,可以利用`App.razor`帮我们做统一呈现的事。
有些情况下,需要在程序运行期间动态执行C#代码,比如,将某些经常改变的算法保存在配置文件中,在运行期间从配置文件中读取并执行运算。这时可以使用C#脚本来完成这些工作。
前面说过`ASP.NET Core Identity` 是基于`Claim` 的验证,而`Role` 就是类型为`Role` 的`Claim`
之前有说到`ASP.NET Core Identity` 使用的是基于`Claim` 的验证,其实`ASP.NET Core Identity` 有不同类型的授权方式,最简单的`登录授权`、`角色授权`、`Claim 授权`,但上述几种都是以一种方式实现:原则授权(`Policy-based authorization`)。
在`EF Core`中`批量`执行`更新`、`删除`、`插入`数据的框架`Zack.EFCore.Batch`已经发布新版,新版增加了对`.NET 6`的支持,数据批量插入的时候支持`ValueConverter`,彻底解决了`“更新数据的时候,当两列的表达式等价时候出现的The count of columns should be even异常”`。
开发一个系统最无聊的过程大概就是解决BUG了,尤其是那种尝试对null 对象取值的错误(`Object reference not set to an instance of an object.`),这应该是大部分人刚踏入编程领域最常碰到的问题,为了从枯燥的解决BUG过程解脱,这篇就来介绍`单元测试`。