- В моем веб-приложении я хотел бы разрешить суперпользователям выдавать себя за других пользователей.
Мой вопрос:
Существует ли общепринятый шаблон проектирования, который я мог бы использовать, чтобы это произошло?
- Вообще говоря, я могу себе представить, что мне нужно будет отслеживать текущего пользователя и выдавшего себя за пользователя внутри сеанса.
Но вы можете понять, что я хотел бы минимизировать сложность, связанную с этим изменением.
Кстати, мое приложение является приложением ASP.NET MVC 2, поэтому, если бы я мог воспользоваться любой существующей инфраструктурой, это было бы здорово.
РЕДАКТИРОВАТЬ: Я использую проверку подлинности с помощью форм.
РЕДАКТИРОВАТЬ: Мне также нужно отслеживать тот факт, что суперпользователь действует от имени другого пользователя. Мне нужно сделать это по двум причинам:
- Ведение журнала должно регистрировать тот факт, что суперпользователь действовал от имени другого пользователя.
- Возможно, что суперпользователь захочет вернуться на экран олицетворения, чтобы "переключить контекст" и выдать себя за другого пользователя.
РЕДАКТИРОВАТЬ: @ Jordão предложил наиболее работоспособное решение . Моя единственная проблема заключается в следующем: если суперпользователь (при олицетворении другого пользователя) переходит на домашний экран, а в верхней части экрана отображается «Hello [User]», я хочу, чтобы он сказал «Hello [Impersonated User]» как в отличие от «Привет [Супер пользователь]». И я боюсь, что решение @ Jordão усложнит реализацию этого экрана и других экранов с аналогичными требованиями.