コード例 #1
0
        public virtual async Task SendAsync(string type, string receiver)
        {
            await BeforeSendAsync(type, receiver);

            var code = await CaptchaGenerator.CreateAsync();

            var receiverType = receiver.Contains("@") ? EnumReceiverType.Email : EnumReceiverType.PhoneNumber;

            string expireSecondSettingName = receiverType == EnumReceiverType.Email ? AbpCaptchaSettings.EmailCaptchaExpireSeconds : AbpCaptchaSettings.SmsCaptchaExpireSeconds;
            int    expireSeconds           = await SettingProvider.GetAsync(expireSecondSettingName, 60);

            var captcha = new Captcha(type, code, receiver, receiverType, Clock.Now, expireSeconds, CurrentTenant.Id);

            bool sendResult = receiverType == EnumReceiverType.Email
                ? await EmailCaptchaSender.SendAsync(captcha)
                : await SmsCaptchaSender.SendAsync(captcha);

            if (!sendResult)
            {
                throw new BusinessException(CaptchaErrorCodes.SendFailed);
            }
            await CaptchaStore.CreateAsync(captcha);
        }
コード例 #2
0
 public virtual Task <bool> SendAsync(Captcha captcha)
 {
     Logger.LogWarning($"Email Captcha Sending was not implemented! Using {nameof(DefaultCaptchaManager)}:");
     Logger.LogWarning("Captcha :{@captcha} ", captcha);
     return(Task.FromResult(true));
 }