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); } }
public string GenerateAccessSecret(AccessSecret secret) { return Convert.ToBase64String(_timeLimitedProtector.Protect( Encoding.UTF8.GetBytes(secret.JsonSerialize()), new DateTimeOffset(secret.ExpiresTime, TimeSpan.FromHours(8)))); }