在asp.net
,Membership
和已启用哈希密码的通用Roles
网站中,我想向管理员提供impersonation
,以便他们可以浏览网站 用户会。该网站应该像该用户登录一样运行,然后能够恢复到他们自己的登录状态。
实现这一目标的最佳方法是什么?
示例用例:包含两种类型用户的网站:“买方”和“管理员”。 该网站提供“购买”按钮,以购买管理员专门提供给用户的内容。即只有买家才能使用购买按钮并付款。 用户遇到问题,因此支持管理员可以“冒充”用户登录并代表他们购买或“看到”他们面临的问题。
没有模仿,唯一的方法是在代码中允许这样做,否定了“看到用户问题”的目的。即使我没有使用散列密码并使用FormsAuthentication.SignOut()
并以用户身份手动登录管理员,也不行。
我希望我上面有道理。
答案 0 :(得分:6)
在codeproject.com上查看this sample。我认为它能满足您的需求。
答案 1 :(得分:1)
我没有在我面前执行此操作的代码(几年前的分配),但是在Membership API中有一些位用于使用代码签名。不幸的是,在本周末之前我无法访问代码,或者我可以快速分享这些内容并完成此操作。
我确实记得你必须首先使用Membership类作为MembershipUser来获取用户。从这一点来说,我不确定你是否必须验证提供商或什么。我们确实使用了自定义提供商,但我忘记它是否与此解决方案有关。
无论如何,检查安全位,重点关注成员资格和成员资格。