7

W ogólnej asp.net stronie z Membership, Roles i zakodowane hasła włączona, chciałbym zapewnić administratorom impersonation tak, że mogą przeglądać stronę jako że użytkownik będzie. Witryna powinna działać tak, jakby ten użytkownik był zalogowany, a następnie móc powrócić do własnego loginu.personifikować użytkownika członkostwa w ASP.NET

Jakie jest najlepsze podejście, aby to osiągnąć?

Przykładowy przypadek: Witryna zawierająca dwa typy użytkowników: "Kupujący" i "Administrator". Strona zawiera przycisk "Zakup", aby kupić coś, co zostało przekazane użytkownikowi przez administratorów. tj. tylko ten kupujący może użyć przycisku zakupu i dokonać płatności. Użytkownik ma problem, więc administrator pomocy technicznej może podszywać się pod login i zakup użytkownika w jego imieniu lub "widzieć" problemy, z którymi się borykają.

Bez podszywania się, jedynym sposobem jest zezwolenie na to w kodzie, a to neguje cel "widzenia problemu użytkownika". Nawet jeśli nie używałem hashowanych haseł i użyłem FormsAuthentication.SignOut() i ręcznie zalogowałem się jako administrator.

Mam nadzieję, że mam sens nad powyższym.

Odpowiedz

1

Nie mam kodu, który używaliśmy do zrobienia tego przede mną (przydział sprzed kilku lat), ale w interfejsie API Membership znajdują się bity do podpisania kogoś przy użyciu kodu. Nie będę miał dostępu do kodu do tego weekendu, niestety, albo będę mógł szybko podzielić się bitami i zrobić to z tym.

Pamiętam, że najpierw musieliście zdobyć użytkownika, jako MembershipUser, używając klasy Membership. Nie jestem pewien, od tego momentu, czy musiałeś potwierdzić wobec dostawcy lub czegoś. Użyliśmy niestandardowego dostawcy, ale zapominam, czy było to związane z tym rozwiązaniem.

Bez względu na to sprawdź bity zabezpieczające, koncentrując się na członkostwie i memberUser.

6

Spójrz na this sample na stronie codeproject.com. Myślę, że robi to, czego szukasz.

+0

dzięki, wygląda na dobry punkt wyjścia –