在ASP.NET中模拟成一个会员用户

9
在启用了MembershipRoles和哈希密码的通用asp.net网站中,我想为管理员提供冒充功能,以便他们可以像该用户一样浏览网站。该网站应该像该用户已登录一样运行,然后能够恢复到他们自己的登录状态。
最佳实现方法是什么?
一个示例用例:一个网站有两种类型的用户:“买家”和“管理员”。网站为用户提供“购买”按钮,以购买管理员专门提供给该用户的某些东西。即只有该买家可以使用购买按钮并进行支付。当用户遇到问题时,支持管理员可以“冒充”用户的登录并代表其购买或“查看”他们面临的问题。
如果没有冒充,则唯一的方法是在代码中允许此操作,这会破坏“查看用户问题”的目的。即使我没有使用哈希密码,并使用了FormsAuthentication.SignOut()手动将管理员作为用户登录,也不行。
希望上述内容有意义。
2个回答

6

请看codeproject.com上这个示例。我认为它可以满足您的需求。


1

我手头没有我们几年前用来完成这个任务的代码(作业),但是在Membership API中有一些代码可以使用来登录某人。不幸的是,直到这个周末我才能访问代码,否则我可以快速分享这些代码并完成此任务。

我记得你需要首先获取用户,作为MembershipUser,使用Membership类。从这一点上我不确定,你是否需要根据提供者进行验证或其他操作。我们确实使用了自定义提供程序,但我忘记它是否与此解决方案相关。

无论如何,请检查安全位,重点关注membership和membershipUser。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接