diff options
author | crupest <crupest@outlook.com> | 2022-12-10 16:56:33 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2022-12-20 20:32:53 +0800 |
commit | f208e75f9e074a3faab489de1093f660b87c2ec7 (patch) | |
tree | 2c2379c5155b7cef31c56c6559418ce1d66128a5 /docker/crupest-api/CrupestApi/CrupestApi.Secrets/SecretInfo.cs | |
parent | 8c478bb1a07a55b9056ada029e0d6f9fe34d8d38 (diff) | |
download | crupest-f208e75f9e074a3faab489de1093f660b87c2ec7.tar.gz crupest-f208e75f9e074a3faab489de1093f660b87c2ec7.tar.bz2 crupest-f208e75f9e074a3faab489de1093f660b87c2ec7.zip |
Develop secret api. v24
Diffstat (limited to 'docker/crupest-api/CrupestApi/CrupestApi.Secrets/SecretInfo.cs')
-rw-r--r-- | docker/crupest-api/CrupestApi/CrupestApi.Secrets/SecretInfo.cs | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/docker/crupest-api/CrupestApi/CrupestApi.Secrets/SecretInfo.cs b/docker/crupest-api/CrupestApi/CrupestApi.Secrets/SecretInfo.cs index 009bde9..e6af39b 100644 --- a/docker/crupest-api/CrupestApi/CrupestApi.Secrets/SecretInfo.cs +++ b/docker/crupest-api/CrupestApi/CrupestApi.Secrets/SecretInfo.cs @@ -1,3 +1,5 @@ +using System.Security.Cryptography; +using System.Text; using CrupestApi.Commons.Crud; namespace CrupestApi.Secrets; @@ -6,7 +8,7 @@ public class SecretInfo { [Column(NotNull = true)] public string Key { get; set; } = default!; - [Column(NotNull = true, ClientGenerate = true)] + [Column(NotNull = true, ClientGenerate = true, NoUpdate = true)] public string Secret { get; set; } = default!; [Column(DefaultEmptyForString = true)] public string Description { get; set; } = default!; @@ -16,4 +18,31 @@ public class SecretInfo public bool Revoked { get; set; } [Column(NotNull = true)] public DateTime CreateTime { get; set; } + + private static RandomNumberGenerator RandomNumberGenerator = RandomNumberGenerator.Create(); + + private static string GenerateRandomKey(int length) + { + const string alphanum = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; + var result = new StringBuilder(length); + lock (RandomNumberGenerator) + { + for (int i = 0; i < length; i++) + { + result.Append(alphanum[RandomNumberGenerator.GetInt32(alphanum.Length)]); + } + } + return result.ToString(); + } + + + public static string SecretDefaultValueGenerator() + { + return GenerateRandomKey(16); + } + + public static DateTime CreateTimeDefaultValueGenerator() + { + return DateTime.UtcNow; + } } |