是否可以通过 c# ASP.net Web 应用程序中的代码来模拟唯一用户的体验?

Posted

技术标签:

【中文标题】是否可以通过 c# ASP.net Web 应用程序中的代码来模拟唯一用户的体验?【英文标题】:Is it possible to simulate the experience of a unique user through code in a c# ASP.net web application? 【发布时间】:2011-03-07 20:10:02 【问题描述】:

我们有一个在 IIS7 上运行的 ASP.net Web 应用程序。我们有多个用户,但我们并不总是知道他们的密码。以下是我们希望能够做到的:

以某种管理员身份登录,显示我们当前的用户列表,单击某种“以 John Doe 用户身份运行”,此时我们将能够看到该应用程序(或某些页面)用户。

我们希望以支持/调试的能力来做到这一点。我研究了 ASP.net 的模拟,但这似乎不适用于这里。

感谢任何帮助/建议。如果我生活在梦境中,请告诉我。

【问题讨论】:

您现在如何处理身份验证?你在使用表单身份验证、自定义、windows 吗? 【参考方案1】:

如果您使用forms authentication,您需要做的就是使用您试图模拟的用户的用户名发出一个身份验证cookie:

// Need to be signed as administrator in order to be
// able to impersonate
if (User.IsInRole("Administrator"))

    FormsAuthentication.SetAuthCookie("johndoe", false);

在下一个请求中,您将成为John Doe。如果您需要此信息,您还可以在会话中存储一些值以表明这是代表 John Doe 行事的管理员。

如果您使用的是 Windows NTLM 身份验证,我认为这是不可能的(如果我错了,请纠正我)。

【讨论】:

以上是关于是否可以通过 c# ASP.net Web 应用程序中的代码来模拟唯一用户的体验?的主要内容,如果未能解决你的问题,请参考以下文章

asp.net web服务应用程序问题 高手速进 c#

在 ASP.NET C# Web 应用程序中使用 ADO.NET 和 XML

如何在asp.net c# web应用程序中使用asp.net vb页面

asp.net(c#)如何上传大文件?

如何在 Web 应用程序(ASP.Net、C#、IIS)中进行文件上传

asp.net(c#)如何上传大文件?