Выдавать себя за пользователя членства в ASP.NET - PullRequest
8 голосов
/ 20 октября 2011

На обычном asp.net веб-сайте с включенными Membership, Roles и хешированными паролями я хотел бы предоставить администраторам impersonation, чтобы они могли просматривать веб-сайт как , что пользователь было бы. Веб-сайт должен функционировать так, как если бы этот пользователь вошел в систему, а затем сможет вернуться к своему собственному логину.

Каков наилучший подход для достижения этой цели?

Пример использования: Веб-сайт с двумя типами пользователей: «Покупатель» и «Администратор». На веб-сайте есть кнопка «Купить», чтобы купить что-то, специально предоставленное пользователю администраторами. Т.е. только этот покупатель может использовать кнопку покупки и произвести оплату. У пользователя возникают проблемы, поэтому администратор службы поддержки может «выдать себя» за логин и покупку пользователя от его имени или «увидеть» проблему, с которой он сталкивается.

Без подражания единственный способ - разрешить это в коде, что сводит на нет цель «увидеть проблему пользователя». Даже если я не использовал хешированные пароли и использовал FormsAuthentication.SignOut() и вручную вошел в систему как администратор.

Надеюсь, я понял смысл выше.

Ответы [ 2 ]

6 голосов
/ 20 октября 2011

Взгляните на этот образец на codeproject.com. Я думаю, что он делает то, что вы ищете.

1 голос
/ 20 октября 2011

У меня нет кода, который мы использовали, чтобы сделать это передо мной (назначение несколько лет назад), но в API членства есть биты, чтобы подписать кого-то с помощью кода.У меня не будет доступа к коду до этих выходных, к сожалению, или я мог бы быстро поделиться битами и покончить с этим.

Я помню, вы сначала должны были получить пользователя, как MembershipUser, используя класс Membership.С этой точки зрения я не уверен, нужно ли вам проверять на предмет провайдера или чего-то еще. Мы использовали нестандартного провайдера, но я забываю, было ли это связано с этим решением.ориентируясь на членство и членство пользователя.

...