/ / MVC2 та подія запуску сесії - asp.net, asp.net-mvc, сесія

MVC2 та початкова подія сеансу - asp.net, asp.net-mvc, сесія

Налаштування:

Контролер облікового запису з типовим входом /Вихід із шаблону, що надходить із шаблону. Тут не так багато змін на сторінці входу. Використовуючи спеціальний постачальник послуг (SQL), але я не думаю, що це впливає на те, що я намагаюся тут зробити.

Вимоги:

Клієнт хоче керувати ліцензуванням шляхом обмеження одночасних користувачів, а не загальним числом користувачів. Отже, після посилання на це пост тут, Я поставив собі за мету зробити цю роботу тим, що мені потрібноробити. І це відстежувати максимальних та поточних користувачів для кожної організації, яка зареєструвала нашу заявку. Немає проблем, достатньо мати додаток ("max") та додаток ("current"), які є хеш-таблицями, ключовим є ідентифікатор організації, а значенням є поточний або максимум користувачів для організації. У Session_Start я збільшив би поточних користувачів, перевірив, чи не перевищує макс. А) перенаправлення на сторінку помилок або б) дозволити їм продовжувати те, що їм потрібно робити. На Session_End я би декрементував кількість.

Проблема:

При використанні формService.signIn, що насправді зберігається в сесії? Я, здається, не можу зібрати будь-яку інформацію про свій сеанс у session_start, за винятком ідентифікатора сеансу. Отже, я не можу збільшити правильне число для відстеження користувача. І я не можу додати змінну до сеансу, оскільки session_start вже запустився, перш ніж я отримаю можливість.

Відповіді:

1 для відповіді № 1

Поняття, з яким сеанс якимось чином пов'язанийавтентифікація - міф. Вони повністю незалежні один від одного. Сеанс можна розділити навіть між кількома користувачами, якщо вони поділяються своїм сеансовим ключем; тому "ви ніколи не ставите інформацію, захищену від безпеки, у сеанс. Сесія може також закінчитися, коли ви увійдете в систему. Так само, ваш сеанс все ще активний після виходу, якщо ви явно не відмовитесь від нього.

Сеанс більше схожий на кеш-пам'ять, орієнтовану на користувача.

Тому потрібно прийняти цей факт і пристосуватися до нього. Подивіться і перевірте, чи справжній користувач аутентифікований під час початку сеансу. Вам потрібно буде збільшуватись і під час входу, оскільки сеанс вже розпочався.