项目安全配置
本文内容
本文简要介绍如何在 SnapDevelop 中配置应用程序认证和授权。
概述
SnapDevelop 中集成了 ASP.NET Core 身份验证和授权。
您可以在设计器项目属性页的 安全 选项卡上启用身份验证和授权。
对于身份验证,当前您可以选择使用 ASP.NET Identity。 目前的身份验证框架是微软的 ASP.NET Identity。
对于授权,您可以选择使用 ASP.NET Core 默认策略,或者单击 添加 添加您自己的策略。 当前授权配置支持 基于策略的授权。
在启用认证和授权后,所有 API 都会自动使用默认策略,您可以在 API 设置页面中为每个 API 选择不同的授权策略。
身份验证
启用身份验证后,会自动创建 ICurrenUser 接口和实现来访问身份信息。
您可以在任何表达式设计器中(除了实体设计器中的默认值之外)选择 ICurrentUser 接口。
注意:启用身份验证后,在生成项目时将生成 Authentication 项目,并添加身份数据库配置,用于将持久化数据存储在数据库中,如下图所示。 您可以通过双击解决方案资源管理器中 生成配置 节点下的配置文件来查看数据库配置。
授权
本节内容
概述
授权策略设计器用于配置应用程序的授权策略;它有一个内置的 ASP.NET Core 默认策略,无法改名以及删除。
添加策略
点击 添加 添加策略,然后点击右侧的重命名图标将策略名称修改为实际名称:
默认策略
您可以选择 默认 列来指定策略作为应用程序默认策略:
代码预览:
目前授权策略设计器只能添加策略和指定默认策略; GA版本将提供更多的功能。
多租户
在项目安全页中添加了 “启用多租户支持” 选项,勾选启用身份验证后才可以设置。
代码预览
ICurrentTenant:租户接口
ITenantProvider:租户提供者接口
IdentityCurrentTenant:当前租户默认实现类
MultiTenantMiddleware:多租户中间件
UseMultiTenantMiddleware():多租户中间件的扩展方法
从当前租户上获取数据库连接字符串和使用多租户中间件。
审计和多租户全局筛选器
默认内置了两个基类实体:AuditEntity(审计相关), MultiTenantEntity(多租户相关)
AuditEntity:
MultiTenantEntity:
当项目启用了身份验证并且使用了 AuditEntity,会生成审计字段自动赋值相关的代码。
当项目启用了身份验证和多租户支持并且使用了 MultiTenantEntity,会生成多租户全局筛选器相关的代码。