feat:furion rbac搭建

This commit is contained in:
橙子
2023-04-13 21:12:06 +08:00
parent 18696ec542
commit b9dad93c9d
194 changed files with 9557 additions and 75 deletions

View File

@@ -0,0 +1,66 @@
using AlibabaCloud.SDK.Dysmsapi20170525;
using Furion.DependencyInjection;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
namespace Yi.Framework.Module.Sms.Aliyun
{
public class SmsAliyunManager:ISingleton
{
public Client AliyunClient { get; set; }
private ILogger<SmsAliyunManager> _logger;
private SmsAliyunOptions Options { get; set; }
public SmsAliyunManager(ILogger<SmsAliyunManager> logger, IOptions<SmsAliyunOptions> options)
{
Options = options.Value;
if (Options.EnableFeature)
{
_logger = logger;
AliyunClient = CreateClient(Options.AccessKeyId, Options.AccessKeySecret);
}
}
private static Client CreateClient(string accessKeyId, string accessKeySecret)
{
AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config
{
// 必填,您的 AccessKey ID
AccessKeyId = accessKeyId,
// 必填,您的 AccessKey Secret
AccessKeySecret = accessKeySecret,
};
// 访问的域名
config.Endpoint = "dysmsapi.aliyuncs.com";
return new Client(config);
}
/// <summary>
/// 发送短信
/// </summary>
/// <param name="phoneNumbers"></param>
/// <param name="code"></param>
/// <returns></returns>
public async Task Send(string phoneNumbers, string code)
{
try
{
AlibabaCloud.SDK.Dysmsapi20170525.Models.SendSmsRequest sendSmsRequest = new AlibabaCloud.SDK.Dysmsapi20170525.Models.SendSmsRequest
{
PhoneNumbers = phoneNumbers,
SignName = Options.SignName,
TemplateCode = Options.TemplateCode,
TemplateParam = System.Text.Json.JsonSerializer.Serialize(new { code })
};
var response = await AliyunClient.SendSmsAsync(sendSmsRequest);
}
catch (Exception _error)
{
_logger.LogError(_error, _error.Message);
}
}
}
}

View File

@@ -0,0 +1,14 @@
namespace Yi.Framework.Module.Sms.Aliyun
{
public class SmsAliyunOptions
{
public string AccessKeyId { get; set; }
public string AccessKeySecret { get; set; }
public string SignName { get; set; }
public string TemplateCode { get; set; }
public bool EnableFeature { get; set; } = true;
}
}