在ASP.NET中模拟成员资格用户

时间:2011-10-20 13:42:53

标签: asp.net .net asp.net-membership forms-authentication impersonation

asp.netMembership和已启用哈希密码的通用Roles网站中,我想向管理员提供impersonation,以便他们可以浏览网站 用户会。该网站应该像该用户登录一样运行,然后能够恢复到他们自己的登录状态。

实现这一目标的最佳方法是什么?

示例用例:包含两种类型用户的网站:“买方”和“管理员”。 该网站提供“购买”按钮,以购买管理员专门提供给用户的内容。即只有买家才能使用购买按钮并付款。 用户遇到问题,因此支持管理员可以“冒充”用户登录并代表他们购买或“看到”他们面临的问题。

没有模仿,唯一的方法是在代码中允许这样做,否定了“看到用户问题”的目的。即使我没有使用散列密码并使用FormsAuthentication.SignOut()并以用户身份手动登录管理员,也不行。

我希望我上面有道理。

2 个答案:

答案 0 :(得分:6)

在codeproject.com上查看this sample。我认为它能满足您的需求。

答案 1 :(得分:1)

我没有在我面前执行此操作的代码(几年前的分配),但是在Membership API中有一些位用于使用代码签名。不幸的是,在本周末之前我无法访问代码,或者我可以快速分享这些内容并完成此操作。

我确实记得你必须首先使用Membership类作为MembershipUser来获取用户。从这一点来说,我不确定你是否必须验证提供商或什么。我们确实使用了自定义提供商,但我忘记它是否与此解决方案有关。

无论如何,检查安全位,重点关注成员资格和成员资格。