>I have a multi-user web application that allows users to log in and use the
> features.
[quoted text clipped - 8 lines]
> 1) Have admin as super user, so that when he browses a user's page, he has
> full permission. However this seems high risk?
Why? If you already need to implement a check for non-admins, just build
the admin bypass into the same verification method.
> 2) When admin clicks on a user's page from his admin control panel, the
> system changes the admin to that user, just as though the user logged in
[quoted text clipped - 9 lines]
> can be decrypted though, but I'm not sure (I didn't write the
> application).
Not a good idea. Amongst other potential problems, you lose auditability.
If it ever becomes necessary to track which user performed any given action,
you won't be able to distinguish admin actions from those of the other
users.
> Any suggestions on how to go about this?
As above, implement a single "is the user allowed to run this page?" method
that only permits execution if the current user is either an admin or the
requested account user. To make implementation in each page simpler, you
might want to consider inheriting from a common base page that runs this
verification (assuming this is ASP.NET) .