безопасные случайные числа в asp.net - PullRequest
3 голосов
/ 04 июля 2010

Из того, что я знаю, Random () инициализируется в текущее время. Если два соединения будут разыграны в одну и ту же секунду, я получу одинаковые два случайных числа С большим сайтом это вполне вероятно. Блокировка это плохо, так как я должен решить это? примечание: номер используется для идентификатора сеанса.

-edit- я застрял с помощью длинного. Сокращение 128-битного GUID

кажется неправильным

Ответы [ 2 ]

4 голосов
/ 04 июля 2010

Вместо использования случайного числа из вызова на Random() используйте Guid.NewGuid () .Вероятность дублирования очень и очень мала ...

Использование GUID для идентификатора сеанса является распространенным решением.

2 голосов
/ 04 июля 2010

Во-первых, зачем вам нужно создавать собственный идентификатор сессии? Вы используете SessionIDManager ? Я бы использовал метод Guid.NewGuid (), как показано в примере CreateSessionID , Согласно документации для Guid.NewGuid () , «вероятность того, что значение нового Guid будет равным нулю или равно любому другому Guid, очень мала».

...