电子科技产品东莞网站建设,wordpress pinterest主题,建筑新网,做网站的网站犯法吗1 第3方阿里云短信验证发送服务准备工作 2 其它第3方短信发送服务平台 当前常用第3方短信发送服务平台还有容联云和凯信通过#xff0c;在配置上来说阿里云和容联云配置都比较复杂#xff0c;网上程序集成示例完善#xff0c;资费灵活。凯信通配置十分简单只要在程序中指定其…1 第3方阿里云短信验证发送服务准备工作 2 其它第3方短信发送服务平台 当前常用第3方短信发送服务平台还有容联云和凯信通过在配置上来说阿里云和容联云配置都比较复杂网上程序集成示例完善资费灵活。凯信通配置十分简单只要在程序中指定其平台的登录名、密码和服务平台域名(http://sms.corecms.net:9999/sms.aspx)即可但资费却比较死板。
3 Core.Configuration.SmsConfig
namespace Core.Configuration
{ /// summary /// 【(阿里)短信配置--类】 /// remarks /// 摘要 /// 通过该类中的属性成员实例对“appsettings.json”文件中的第3方阿里短信服务相关数据等数据进行设定性读写操作为当程序实现短信服务功能提供数据支撑。 /// 说明 /// 属性成员的名称必须与JSON键/值对中的键相同且属性成员的个数与键的个数也必须相等 /// 否则ConfigurationBinder.Bind方法将不支持通过“appsettings.json”文件中数据库连接相关数据与当前类中的属性成员实例的设定性读写操作。 /// /remarks /// /summary public class SmsConfig : IConfig { /// summary /// 【访问键编号】 /// remarks /// 摘要 /// 获取/设置第3方阿里短信服务1个指定的访问键编号值。 /// /remarks /// /summary public string AccessKeyId { get; set; } /// summary /// 【访问键密钥】 /// remarks /// 摘要 /// 获取/设置第3方阿里短信服务1个指定的访问键所对应的密钥。 /// /remarks /// /summary public string AccessKeySecret { get; set; } /// summary /// 【签名】 /// remarks /// 摘要 /// 获取/设置第3方阿里短信服务1个指定的签名。 /// /remarks /// /summary public string SignName { get; set; } /// summary /// 【模板代码】 /// remarks /// 摘要 /// 获取/设置第3方阿里短信服务1个指定模板的代码。 /// /remarks /// /summary public string TemplateCode { get; set; } /// summary /// 【阿里短信服务根域名】 /// remarks /// 摘要 /// 获取/设置第3方阿里短信服务的根域名。 /// /remarks /// /summary public string Endpoint { get; set; } }
}
4 Core.Domain.Messages.SmsValidate
namespace Core.Domain.Messages
{ /// summary /// 【短信验证--类】 /// remarks /// 摘要 /// 通过该实体类及其属性成员用于实现当前程序【Core】.【领域】.【信息集】.【短信验证】实体与“[ShopDemo].[SmsValidate]”表之间的CURD的交互操作并把这些数据存储到数据库设置实例中(内存)。 /// /remarks /// /summary public class SmsValidate : BaseEntity { #region 属性 /// summary /// 【手机号】 /// remarks /// 摘要 /// 获取/设置1个指定的手机号。 /// /remarks /// /summary public string Phone { get; set; } /// summary /// 【短信验证码】 /// remarks /// 摘要 /// 获取/设置向1个指定手机所发送的1个指定短信验证码。 /// /remarks /// /summary public string Code { get; set; } /// summary /// 【内容】 /// remarks /// 摘要 /// 获取/设置向1个手机所发送的短信验证内容信息内容模板短信验证码。 /// /remarks /// /summary public string Content { get; set; } /// summary /// 【已经验证】 /// remarks /// 摘要 /// 获取/设置1个值false(默认值未验证)/true(未验证)该值指示1个手机的1个指定短信验证是否已经被使用。 /// 说明 /// 已经验证说明指定短信验证码已经被使用未验证说明指定短信验证码未被使用。 /// /remarks /// /summary public bool IsValidate { get; set; } /// summary /// 【输入错误总计】 /// remarks /// 摘要 /// 获取/设置1个手机的1个指定短信验证码输入错误的最大次数小于等于3次。 /// /remarks /// /summary public int Count { get; set; } /// summary /// 【创建时间】 /// remarks /// 摘要 /// 获取/设置短信验证实体1个指定实例第1次被持久化到短信验证表中的时间。 /// /remarks /// /summary public DateTime CreatedDateTime { get; set; } /// summary /// 【有/失效日期】 /// remarks /// 摘要 /// 获取/设置1个手机的1个指定短信验证码的有/失效日期。 /// 说明 /// 1个手机的1个指定短信验证码的有/失效日期默认值 CreatedDateTime5分钟。 /// /remarks /// /summary public DateTime ExpiryDateTime { get; set; } #endregion }
}
5 Data.Mapping.Messages.SmsValidateBuilder
//Nuget
//Nuget--Microsoft.EntityFrameworkCore.SqlServer
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders; //项目
using Core.Domain.Messages; namespace Data.Mapping.Messages
{ /// summary /// 【短信验证生成器--类】 /// remarks /// 摘要 /// 该类通过对“EntityFrameworkCore”中间件“IEntityTypeConfigurationTEntity/”泛型接口的“Configure”方法的定义以实现把用户实体类及其属性成员相关约束规则及其级联关系定义映射到短信验证表及其的相应字段上。 /// /remarks /// /summary public class SmsValidateBuilder : IEntityTypeConfigurationSmsValidate { #region 方法--IEntityTypeConfiguration ///param namebuilder实体类型生成器实例用于把当前程序中指定实体和属性所定义的约束规则映射到数据库指定表及其字段上。/param /// summary /// 【配置】 /// remarks /// 摘要 /// 该方法通过对“EntityFrameworkCore”中间件“IEntityTypeConfigurationTEntity/”泛型接口的“Configure”方法的定义以实现把短信验证实体类及其属性成员相关约束规则及其级联关系定义映射到短信验证表及其的相应字段上。 /// /remarks /// /summary public void Configure(EntityTypeBuilderSmsValidate builder) { //由于“EntityTypeBuilderUser”的参数已经泛型实例化因此builder后不能再定义为“builder.EntityUser().HasKey(customer customer.Id);”。 //用户表及其字段约束规则映射定义。 builder.HasKey(smsValidate smsValidate.Id); builder.Property(smsValidate smsValidate.Phone).IsRequired().HasMaxLength(50); builder.Property(smsValidate smsValidate.Code).IsRequired().HasMaxLength(60); builder.Property(smsValidate smsValidate.Content).IsRequired().HasMaxLength(255); builder.Property(smsValidate smsValidate.CreatedDateTime).IsRequired(); builder.Property(smsValidate smsValidate.ExpiryDateTime).IsRequired(); } #endregion }
}
对以上功能更为具体实现和注释见230301_042shopDemo(初识第3方阿里云短信验证发送服务)。