コード例 #1
0
        public Task <string> Build(string purpose, string target, int lifeTimeSeconds, int maxErrorCount, string code, string?securityStamp = null)
        {
            if (purpose is null)
            {
                throw new ArgumentNullException(nameof(purpose));
            }
            if (target is null)
            {
                throw new ArgumentNullException(nameof(target));
            }
            if (Options.CurrentValue.LifeTimeSecond <= 0)
            {
                throw new InvalidOperationException("Invalid options: Shashlik.Captcha.LifeTimeSecond");
            }
            if (Options.CurrentValue.MaxErrorCount < 0 || Options.CurrentValue.MaxErrorCount > 99)
            {
                throw new InvalidOperationException("Invalid options: Shashlik.Captcha.MaxErrorCount, should be 0~99");
            }

            var key = GetKey(purpose, target, securityStamp);

            return(Task.FromResult(TotpGenerator.Generate(key).ToString()));
        }
コード例 #2
0
 /// <summary>
 /// Get current user's code
 /// </summary>
 public static string Generate(string secret)
 {
     _totpGenerator = new TotpGenerator();
     return(_totpGenerator.Generate(secret).ToString());
 }