Да, это возможно, но если Вы не довольно небольшой магазин, это - перенос для поддержания. Как часто супервизоры/менеджеры становятся взятыми напрокат/выстрелившими/замененными/продвинутыми и т.д.? Для более крупных компаний у Вас могли бы быть некоторые день, что означает, что Вы будете постоянно обновлять иерархию и изменять десятки или сотни отношений.
Вы также получаете времена, когда кто-то был уволен или завершен, и замена еще не была assigned/hired/whatever, таким образом, у Вас мог быть перерыв в Вашем дереве.
Путем я сделал это в прошлом для крупного университета, мы отследили отделы как объекты с иерархией и затем связанными людьми с отделами. (некоторые люди были связаны больше чем с одним отделом, из-за научно-исследовательских институтов, студенческих групп, и т.д.), каждый отдел имел главу того перечисленного отдела и вторичный редактор (секретарь, обычно), кто мог внести изменения в их членство.
Наш был разработан для использования в качестве части процесса создания учетной записи (новая учетная запись способности или штата должна была ручаться за отделом; новые отделы должны были ручаться за их высокоуровневым отделом, и т.д.), возможно, что Вы могли бы разработать что-то по-другому в зависимости от того, что Ваши фактические потребности для того, чтобы сделать это.
Когда рабочий процесс аварийно завершает работу и перезапускается, все сеансы также теряются. Вы проверяли свой журнал событий на предмет чего-нибудь странного?
Его можно переопределить в коде. Session.Timeout = nn минут.
Приложение ASP.NET может также иметь код в целях безопасности для истечения срока действия и прекращения сеансов. Это делается с помощью Session.Abandon (). Вы можете проверить, не удаляется ли сеанс в приложении. Надеюсь, в приложении есть какой-то тип регистрации в коде аутентификации, который поможет выявить активность сеанса.
Срок действия сеанса также скользит. Поэтому, если вы часто подключаетесь к веб-сайту каждые несколько секунд, срок его действия не должен истекать. Если так, то точно что-то подделано.