#asp.net #.net #asp.net-membership #forms-authentication #impersonation
#asp.net #.net #asp.net-членство #формы-аутентификация #олицетворение
Вопрос:
На общем asp.net
веб-сайте с включенными Membership
, Roles
и хэшированными паролями я хотел бы предоставить администраторам impersonation
, чтобы они могли просматривать веб-сайт так, как это делал бы этот пользователь. Веб-сайт должен функционировать так, как если бы этот пользователь вошел в систему, а затем мог вернуться к своему собственному логину.
Каков наилучший подход для достижения этой цели?
Пример использования: веб-сайт с двумя типами пользователей: «Покупатель» и «Администратор». Веб-сайт предоставляет кнопку «Купить», чтобы купить что-то, специально предоставленное пользователю администраторами. т. Е. только этот покупатель может использовать кнопку покупки и произвести платеж. У пользователя возникли проблемы, поэтому администратор службы поддержки может «олицетворять» логин пользователя и совершать покупки от его имени или «видеть» проблему, с которой он сталкивается.
Без олицетворения единственный способ — разрешить это в коде, и это сводит на нет цель «увидеть проблему пользователя». Даже если я не использовал хэшированные пароли и использовал FormsAuthentication.SignOut()
и вручную вошел в систему администратора как пользователь.
Я надеюсь, что я понимаю смысл выше.
Ответ №1:
Взгляните на этот пример на codeproject.com . Я думаю, что это делает то, что вы ищете.
Ответ №2:
У меня нет кода, который мы использовали для этого передо мной (задание от нескольких лет назад), но в API членства есть биты, позволяющие подписывать кого-либо с помощью кода. К сожалению, у меня не будет доступа к коду до этих выходных, или я мог бы быстро поделиться битами и покончить с этим.
Я помню, что сначала вы должны были получить пользователя как MembershipUser, используя класс Membership. С этого момента я не уверен, приходилось ли вам проверять соответствие поставщику или что.Мы использовали пользовательский поставщик, но я забыл, было ли это связано с этим решением.
Независимо от этого, изучите биты безопасности, сосредоточив внимание на членстве и MembershipUser.