Esempio n. 1
0
        public (bool result, string message) VerifyAccessSecret(AccessSecret secret, string accessKey, string accessSecret)
        {
            try
            {
                if (secret.ExpiresTime < DateTime.Now.Date)
                    return (false, "服务时间已到期");

                var deserializeSecret = Encoding.UTF8.GetString(_timeLimitedProtector.Unprotect(Convert.FromBase64String(accessSecret))).JsonDeserialize<AccessSecret>();

                if (deserializeSecret.Key != accessKey)
                    return (false, "AccessKey、AccessSecret异常");

                if (deserializeSecret.Version != secret.Version)
                    return (false, "AccessKey、AccessSecret版本错误");

                return (true, "");
            }
            catch (CryptographicException ex)
            {
                return (false, ex.Message);
            }

        }
Esempio n. 2
0
 public string GenerateAccessSecret(AccessSecret secret)
 {
    return Convert.ToBase64String(_timeLimitedProtector.Protect(
         Encoding.UTF8.GetBytes(secret.JsonSerialize()),
         new DateTimeOffset(secret.ExpiresTime, TimeSpan.FromHours(8))));
 }