使用 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 身份验证仅提示一个用户的凭据