Код: Выделить всё
"Jwt": {
"Token": "cB7lN2sz3H9wI5pAJ8fgkLzV0Q4yxXMiRSO6rTKP1tE7mdjFZCpvWGuoDbhYaeqJnMVwiX5UFz4t8NYsQBoL3rlc20PGfMkj1HvT9pqRbDdOEJZmKaU6gSyWbVx8CnI7T0xywZ2mLI4pk3A9vgHeD5PoFN8jQK1X6sruYRhO0eWtxM3BVzZ9nLD4yfpA7qlUki2Sc6mHJ5XboGrQCVwIwxa9tgPB2sKjRyuM1ZvF7Ylnzhe4H8qo3k"
},
Чтобы решить эту проблему, я бы сейчас использовал шаблон Singleton. Для этого я бы сначала сгенерировал статический класс с методом генерации случайных строк.
Это будет выглядеть так:
Код: Выделить всё
using System.Text;
namespace MyApp.Utils
{
public class RandomStringGenerator
{
private static readonly char[] chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".ToCharArray();
private static readonly Random random = new Random();
public static string Generate(int length)
{
var stringBuilder = new StringBuilder(length);
for (int i = 0; i < length; i++)
{
var randomIndex = random.Next(chars.Length);
stringBuilder.Append(chars[randomIndex]);
}
return stringBuilder.ToString();
}
}
}
Код: Выделить всё
namespace MyApp.Utils
{
sealed class JWTTokenProvider
{
private static string _token = null!;
private static JWTTokenProvider _instance;
private static readonly object _lock = new object();
private JWTTokenProvider()
{
_token = RandomStringGenerator.Generate(200);
}
public static JWTTokenProvider Instance()
{
if (_instance == null)
{
lock (_lock)
{
if (_instance == null)
{
_instance = new JWTTokenProvider();
}
}
}
return _instance;
}
public string GetToken()
{
return _token;
}
}
}
Код: Выделить всё
JWTTokenProvider.Instance().GetToken()
Подробнее здесь: https://stackoverflow.com/questions/786 ... -attackers