2

使用表单身份验证时是否可以模拟用户?

问题是我想要一个用户的外部登录和一个仅使用集成 Windows 安全性的内部站点,并且需要模拟用户。

我环顾四周,发现约翰在这里的答案非常好,但我不太明白如何将它与我的表单身份验证混合起来。

建议?


编辑

我想要一个<asp:Login />控件,并且该控件将针对 Active Directory 进行身份验证,该 Active Directory 与我要在其上使用模拟的 Windows 机器具有相同的用户集。

我的问题是我不明白如何使用提供给<asp:Login />控件的相同用户名和密码来模仿。

4

1 回答 1

1

为了使该解决方案起作用,您需要访问用户的 ID 和密码。我不相信您可以使用登录用户控件来获得它;您需要创建自己的登录表单并自己处理登录操作。将用户的 ID 和密码保存在会话中,最好保存在安全字符串中,一旦您进行了身份验证,并且当您需要代表他们访问内部站点时,请使用引用示例中的 Impersonator 类来使用凭据模拟他们。

  using (var context = Impersonator.LogOn( username, password ))
  {
      try
      {
      ....
      }
      finally
      {
         context.Undo();
      }
  }
于 2010-06-28T13:29:38.157 回答