使用表单身份验证时是否可以模拟用户?
问题是我想要用户的外部登录和只使用集成的Windows安全性的内部站点,并且用户需要被模拟。
我环顾四周,发现John的回答here非常好,但我不太清楚如何将它与我的Forms身份验证相混淆。
建议?
修改
我希望拥有<asp:Login />
控件,此控件将针对Active Directory进行身份验证,该Active Directory与我要使用模拟的Windows机器具有相同的用户集。
我的问题是,我无法使用提供给<asp:Login />
控件的相同用户名和密码来进行impersoante。
答案 0 :(得分:1)
为了使该解决方案有效,您需要访问用户的ID和密码。我不相信你可以使用Login用户控件来获取它;您需要创建自己的登录表单并自行处理登录操作。在您进行身份验证后,当您需要访问内部站点时,请在会话中保留用户的ID和密码(最好是安全字符串),使用引用示例中的Impersonator类使用凭据模拟它们。 / p>
using (var context = Impersonator.LogOn( username, password ))
{
try
{
....
}
finally
{
context.Undo();
}
}