, поэтому после дальнейшего чтения их нет прямого способа запросить браузер клиента создать новый идентификатор сеанса, даже если я использовал Session.Clear (), Session.RemoveAll () или Session.Abandon (), он не будет обслуживать мойпотребности (вы можете прочитать о разнице в этом художественном Link , это было хорошее чтение), поэтому в конце дня я использовал sessionid в качестве общей строки для идентификации записей базы данных для оператора обновления взапрос конца страницы, поэтому я создал функцию, которая генерирует случайную 20-символьную строку при каждом вызове и присваивает значение глобальному var, этот var можно использовать в моих запросах на вставку / обновление, метод, который я создал для генерации случайной строки:следующим образом: -
public static string GenerateSessionID()
{
char[] characters = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".ToCharArray();
Random r = new Random();
System.Threading.Thread.Sleep(10);
string randomstring = "";
for (int i = 0; i < 20; i++)
{
randomstring += characters[r.Next(0, 60)].ToString();
}
return randomstring;
}
, чтобы помочь понять код
char[] characters = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".ToCharArray();
эта строка кода создаст массив символов, включая все буквы чисел в нижнем и верхнем регистре, вы можете поставитьлюбые символы, которые вы хотели бы
Random r = new Random();
здесь вы создаете объект "r" случайного класса
string randomstring = "";
простосоздав строку для хранения значения сгенерированного ключа
for (int i = 0; i < 20; i++)
, вы можете определить длину случайного ключа, увеличив или уменьшив максимальное значение «i»
r.Next(0, 60)
методаr.Next (0,60) возвращает случайное число между 0, 60;r.Next (мин, макс);Вы можете вызвать r.Next (), он получит любое случайное число, которое я определил минимальным и максимальным значением, потому что я буду использовать число, сгенерированное как индекс для массива символов
randomstring += characters[r.Next(0, 60)].ToString();
Полагаю, теперь оно самообъяснил, что каждый раз, когда вы выполняете цикл, символ в массиве символов с индексом random будет соединяться со строкой random
System.Threading.Thread.Sleep(10);
. Теперь я использовал thread.sleep для 10 mili-sesond, когда вы продолжаете вызыватьФункция random .next () без каких-либо разрывов будет возвращать то же значение, я кратко читал об этом, я продолжал уменьшать значение милисекунды, пока не достиг 2, и это было ударом и промахом, иногда это порождает новое значение иногдане так просто, чтобы быть в безопасности, я поставил значение как 10
, теперь я вызываю функцию, когда мне это нужно, помещаю значение в строку и использую его