Чтобы ответить на ваш оригинальный вопрос: сеансы привязаны к идентификатору, который помещен в cookie. Этот идентификатор генерируется с использованием некоторых случайных чисел. Он не гарантированно уникален, но очень маловероятно, что он когда-либо будет дублироваться в течение жизни сеанса. Даже если ваши сеансы работают в течение полных рабочих дней. Вероятно, потребуются годы на действительно популярном сайте, чтобы сгенерировать дубликат ключа (статистика и факты не подтверждают это).
Сказав все, что, похоже, ваша проблема не в том, что значения сеанса перепутаны. Первое, на что я бы начал смотреть - это пул соединений. ADO объединяет соединения по умолчанию, но если вы запрашиваете соединение с именем пользователя / паролем, которого нет в пуле, это должно дать вам новое соединение. Подсказка, которая может стать узким местом для производительности в будущем, если ваш сайт очень большой. Прошло много времени с тех пор, как я работал с SQL Server, в Oracle есть вызов, который можно сделать, чтобы изменить личность пользователя. Я был бы удивлен, если бы не было аналога в SQL Server. Вы можете попытаться подключиться к вашей БД с использованием общего имени пользователя / пароля, а затем выполнить этот вызов переключателя идентификации, прежде чем вернуть соединение с остальной частью кода.