asp.net zero 8.2 学习-9-多租户设置,发送邮件配置
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了asp.net zero 8.2 学习-9-多租户设置,发送邮件配置,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2782字,纯文字阅读大概需要4分钟。
内容图文
![asp.net zero 8.2 学习-9-多租户设置,发送邮件配置](/upload/InfoBanner/zyjiaocheng/642/31d8dc15285c4b218cc5e8c17a1a7d1e.jpg)
学习在asp.net zero系统中如何切换多租户及没有租户的设置:
- 配置多租户,为实体添加TenantID
- 数据库迁移
- 修改DemoObjectAppService服务类的实体创建方法
- 配置邮件发送
- 创建租户,并添加数据测试
- 切换为无租户系统
配置多租户,为实体添加TenantID
asp.net zero系统默认采用多租户设置,并且默认有一个default的租户名称。这里需要对实体类(领域模型),添加TenantID,实现IMayHaveTenant接口
[Table("DemoObjects")]
public class DemoObject : FullAuditedEntity,IMayHaveTenant
{
/// <summary>
/// 租户ID
/// </summary>
public int? TenantId { get; set; }
...
}
在SISDbContext下为DemoObject添加租户ID为索引
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
//配置租户ID
modelBuilder.Entity<DemoObject>(b =>
{
b.HasIndex(e => new { e.TenantId });
});
添加数据库迁移
- 清空DemoObjects表,执行sql:
delete from DemoObjects;truncate table DemoObjects;
- 先添加数据库迁移:
add-migration addTenantId2DemoObject
- 再升级数据库:
update-database
修改DemoObjectAppService服务类的实体创建方法,添加租户ID
/// <summary>
/// 创建实体
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[AbpAuthorize(AppPermissions.Pages_Demo_Create)]
private async Task Create(CreateOrEditDemoObjectDto input)
{
var demoObject = ObjectMapper.Map<DemoObject>(input);
//如果租户ID不为空,则添加租户ID
if (AbpSession.TenantId!=null)
{
demoObject.TenantId = (int)AbpSession.TenantId;
}
await _demoObjectRepository.InsertAsync(demoObject);
}
配置邮件发送
运行asp.net zero系统,在系统的设置->邮箱设置发送邮箱参数:这里以qq邮箱作为发送邮箱,需要登录qq邮箱开启POP3/SMTP服务:
开启POP3/SMTP服务
在asp.net zero设置发送邮箱:
发送邮箱设为qq邮箱,端口为587,SMTP服务器:smtp.qq.com,用户名自己设置,密码这里不是qq邮箱登录密码而实开启pop3服务的授权码 ,保存设置
asp.net zero系统默认在调试模式下不发送邮件,需要到SIS.Core项目下的SISCoreModule.cs设置:注释掉下面代码,运行系统就可以在"系统->设置->邮箱"测试发送邮件功能
//默认Debug模式下不能发送邮件
//if (DebugHelper.IsDebug)
//{
// //Disabling email sending in debug mode
// Configuration.ReplaceService<IEmailSender, NullEmailSender>(DependencyLifeStyle.Transient);
//}
测试邮件:
创建租户,并添加数据测试
先不设置租户,以admin登录系统,添加租户tenant1,并设置邮箱,这是系统会发送激活邮件。先注销系统,登录邮箱,点击验证会获取到租户的用户名和密码。
在租户tenant1下登录系统,创建u1_t1的测试实体DemoObject,再在default租户下登录系统,创建u1_default的测试实体,再租户为空时,登录系统,添加u1_null的测试实体。
这是会发现在三个子系统下,用户的数据实现了隔离,互不影响,也看不到其他租户的数据。这就是多租户。
切换到无租户的系统
在SIS.Core.Shared下的SISConsts下设置public const bool MultiTenancyEnabled = false;
,可以将系统设置为无租户系统。
这是登录时无租户选择,以admin登录,这时测试实体显示的时u1_default。说明系统在无租户的情况下是以系统默认创建的default租户系统运行。
内容总结
以上是互联网集市为您收集整理的asp.net zero 8.2 学习-9-多租户设置,发送邮件配置全部内容,希望文章能够帮你解决asp.net zero 8.2 学习-9-多租户设置,发送邮件配置所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。