使用 ASP.NET 表单身份验证的用户模拟

Posted

技术标签:

【中文标题】使用 ASP.NET 表单身份验证的用户模拟【英文标题】:User impersonation with ASP.NET Forms Authentication 【发布时间】:2009-02-14 12:04:55 【问题描述】:

场景:在电子商务系统中,帮助台用户应该能够“冒充”或“登录为”特定客户(来自基于 Web 的管理站点),以便他可以直接支持客户 - 例如。当客户打电话时。

补充说明:无需跟踪原始身份验证上下文。我们只需要提供一个“登录为”按钮,该按钮将以客户身份登录,而帮助台用户无需知道密码。

任何想法如何使用常规 ASP.NET 表单身份验证来实现此场景?

【问题讨论】:

【参考方案1】:

也许我不完全理解这个场景。但是为什么不让支持以用户身份登录呢?

FormsAuthentication.SetAuthCookie("yourCustomersUserName");

然后由电子商务系统决定是否有更新的“购物车”或任何支持可以提供帮助的东西..

【讨论】:

您可以从支持人员在用户名中键入的文本框中获取用户名吗? auth cookie改变时会话是否自动切换? 你不需要做一个 Session.Abandon() 吗?【参考方案2】:

我能够让它工作,假设您已经有一个用户登录,您可以使用以下代码模拟另一个用户。

FormsAuthentication.SignOut();

FormsAuthentication.SetAuthCookie("username", true );

【讨论】:

以上是关于使用 ASP.NET 表单身份验证的用户模拟的主要内容,如果未能解决你的问题,请参考以下文章

将特定域的 ASP.NET 模拟用户添加到 windows 身份验证

ASP.NET Windows 身份验证仅提示一个用户的凭据

ASP.NET Windows 身份验证模拟

使用表单身份验证进行模拟

使用 ASP.NET 表单身份验证时如何获取当前登录用户的用户 ID?

Asp.net 委托